
time-syn-verification:     file format elf64-littleaarch64


Disassembly of section .init:

0000000000400768 <_init>:
  400768:	a9bf7bfd 	stp	x29, x30, [sp, #-16]!
  40076c:	910003fd 	mov	x29, sp
  400770:	9400005a 	bl	4008d8 <call_weak_fn>
  400774:	a8c17bfd 	ldp	x29, x30, [sp], #16
  400778:	d65f03c0 	ret

Disassembly of section .plt:

0000000000400780 <.plt>:
  400780:	a9bf7bf0 	stp	x16, x30, [sp, #-16]!
  400784:	d0000090 	adrp	x16, 412000 <__FRAME_END__+0xf7a0>
  400788:	f947fe11 	ldr	x17, [x16, #4088]
  40078c:	913fe210 	add	x16, x16, #0xff8
  400790:	d61f0220 	br	x17
  400794:	d503201f 	nop
  400798:	d503201f 	nop
  40079c:	d503201f 	nop

00000000004007a0 <exit@plt>:
  4007a0:	f0000090 	adrp	x16, 413000 <exit@GLIBC_2.17>
  4007a4:	f9400211 	ldr	x17, [x16]
  4007a8:	91000210 	add	x16, x16, #0x0
  4007ac:	d61f0220 	br	x17

00000000004007b0 <sprintf@plt>:
  4007b0:	f0000090 	adrp	x16, 413000 <exit@GLIBC_2.17>
  4007b4:	f9400611 	ldr	x17, [x16, #8]
  4007b8:	91002210 	add	x16, x16, #0x8
  4007bc:	d61f0220 	br	x17

00000000004007c0 <open@plt>:
  4007c0:	f0000090 	adrp	x16, 413000 <exit@GLIBC_2.17>
  4007c4:	f9400a11 	ldr	x17, [x16, #16]
  4007c8:	91004210 	add	x16, x16, #0x10
  4007cc:	d61f0220 	br	x17

00000000004007d0 <__libc_start_main@plt>:
  4007d0:	f0000090 	adrp	x16, 413000 <exit@GLIBC_2.17>
  4007d4:	f9400e11 	ldr	x17, [x16, #24]
  4007d8:	91006210 	add	x16, x16, #0x18
  4007dc:	d61f0220 	br	x17

00000000004007e0 <memset@plt>:
  4007e0:	f0000090 	adrp	x16, 413000 <exit@GLIBC_2.17>
  4007e4:	f9401211 	ldr	x17, [x16, #32]
  4007e8:	91008210 	add	x16, x16, #0x20
  4007ec:	d61f0220 	br	x17

00000000004007f0 <sleep@plt>:
  4007f0:	f0000090 	adrp	x16, 413000 <exit@GLIBC_2.17>
  4007f4:	f9401611 	ldr	x17, [x16, #40]
  4007f8:	9100a210 	add	x16, x16, #0x28
  4007fc:	d61f0220 	br	x17

0000000000400800 <close@plt>:
  400800:	f0000090 	adrp	x16, 413000 <exit@GLIBC_2.17>
  400804:	f9401a11 	ldr	x17, [x16, #48]
  400808:	9100c210 	add	x16, x16, #0x30
  40080c:	d61f0220 	br	x17

0000000000400810 <__gmon_start__@plt>:
  400810:	f0000090 	adrp	x16, 413000 <exit@GLIBC_2.17>
  400814:	f9401e11 	ldr	x17, [x16, #56]
  400818:	9100e210 	add	x16, x16, #0x38
  40081c:	d61f0220 	br	x17

0000000000400820 <abort@plt>:
  400820:	f0000090 	adrp	x16, 413000 <exit@GLIBC_2.17>
  400824:	f9402211 	ldr	x17, [x16, #64]
  400828:	91010210 	add	x16, x16, #0x40
  40082c:	d61f0220 	br	x17

0000000000400830 <puts@plt>:
  400830:	f0000090 	adrp	x16, 413000 <exit@GLIBC_2.17>
  400834:	f9402611 	ldr	x17, [x16, #72]
  400838:	91012210 	add	x16, x16, #0x48
  40083c:	d61f0220 	br	x17

0000000000400840 <strcmp@plt>:
  400840:	f0000090 	adrp	x16, 413000 <exit@GLIBC_2.17>
  400844:	f9402a11 	ldr	x17, [x16, #80]
  400848:	91014210 	add	x16, x16, #0x50
  40084c:	d61f0220 	br	x17

0000000000400850 <usleep@plt>:
  400850:	f0000090 	adrp	x16, 413000 <exit@GLIBC_2.17>
  400854:	f9402e11 	ldr	x17, [x16, #88]
  400858:	91016210 	add	x16, x16, #0x58
  40085c:	d61f0220 	br	x17

0000000000400860 <printf@plt>:
  400860:	f0000090 	adrp	x16, 413000 <exit@GLIBC_2.17>
  400864:	f9403211 	ldr	x17, [x16, #96]
  400868:	91018210 	add	x16, x16, #0x60
  40086c:	d61f0220 	br	x17

0000000000400870 <putchar@plt>:
  400870:	f0000090 	adrp	x16, 413000 <exit@GLIBC_2.17>
  400874:	f9403611 	ldr	x17, [x16, #104]
  400878:	9101a210 	add	x16, x16, #0x68
  40087c:	d61f0220 	br	x17

0000000000400880 <ioctl@plt>:
  400880:	f0000090 	adrp	x16, 413000 <exit@GLIBC_2.17>
  400884:	f9403a11 	ldr	x17, [x16, #112]
  400888:	9101c210 	add	x16, x16, #0x70
  40088c:	d61f0220 	br	x17

Disassembly of section .text:

0000000000400890 <_start>:
  400890:	d280001d 	mov	x29, #0x0                   	// #0
  400894:	d280001e 	mov	x30, #0x0                   	// #0
  400898:	aa0003e5 	mov	x5, x0
  40089c:	f94003e1 	ldr	x1, [sp]
  4008a0:	910023e2 	add	x2, sp, #0x8
  4008a4:	910003e6 	mov	x6, sp
  4008a8:	580000c0 	ldr	x0, 4008c0 <_start+0x30>
  4008ac:	580000e3 	ldr	x3, 4008c8 <_start+0x38>
  4008b0:	58000104 	ldr	x4, 4008d0 <_start+0x40>
  4008b4:	97ffffc7 	bl	4007d0 <__libc_start_main@plt>
  4008b8:	97ffffda 	bl	400820 <abort@plt>
  4008bc:	00000000 	.inst	0x00000000 ; undefined
  4008c0:	0040098c 	.word	0x0040098c
  4008c4:	00000000 	.word	0x00000000
  4008c8:	00402320 	.word	0x00402320
  4008cc:	00000000 	.word	0x00000000
  4008d0:	004023a0 	.word	0x004023a0
  4008d4:	00000000 	.word	0x00000000

00000000004008d8 <call_weak_fn>:
  4008d8:	d0000080 	adrp	x0, 412000 <__FRAME_END__+0xf7a0>
  4008dc:	f947f000 	ldr	x0, [x0, #4064]
  4008e0:	b4000040 	cbz	x0, 4008e8 <call_weak_fn+0x10>
  4008e4:	17ffffcb 	b	400810 <__gmon_start__@plt>
  4008e8:	d65f03c0 	ret
  4008ec:	00000000 	.inst	0x00000000 ; undefined

00000000004008f0 <deregister_tm_clones>:
  4008f0:	f0000080 	adrp	x0, 413000 <exit@GLIBC_2.17>
  4008f4:	91022000 	add	x0, x0, #0x88
  4008f8:	f0000081 	adrp	x1, 413000 <exit@GLIBC_2.17>
  4008fc:	91022021 	add	x1, x1, #0x88
  400900:	eb00003f 	cmp	x1, x0
  400904:	540000a0 	b.eq	400918 <deregister_tm_clones+0x28>  // b.none
  400908:	d0000001 	adrp	x1, 402000 <xag_user_get_gyro_data>
  40090c:	f941e021 	ldr	x1, [x1, #960]
  400910:	b4000041 	cbz	x1, 400918 <deregister_tm_clones+0x28>
  400914:	d61f0020 	br	x1
  400918:	d65f03c0 	ret
  40091c:	d503201f 	nop

0000000000400920 <register_tm_clones>:
  400920:	f0000080 	adrp	x0, 413000 <exit@GLIBC_2.17>
  400924:	91022000 	add	x0, x0, #0x88
  400928:	f0000081 	adrp	x1, 413000 <exit@GLIBC_2.17>
  40092c:	91022021 	add	x1, x1, #0x88
  400930:	cb000021 	sub	x1, x1, x0
  400934:	9343fc21 	asr	x1, x1, #3
  400938:	8b41fc21 	add	x1, x1, x1, lsr #63
  40093c:	9341fc21 	asr	x1, x1, #1
  400940:	b40000a1 	cbz	x1, 400954 <register_tm_clones+0x34>
  400944:	d0000002 	adrp	x2, 402000 <xag_user_get_gyro_data>
  400948:	f941e442 	ldr	x2, [x2, #968]
  40094c:	b4000042 	cbz	x2, 400954 <register_tm_clones+0x34>
  400950:	d61f0040 	br	x2
  400954:	d65f03c0 	ret

0000000000400958 <__do_global_dtors_aux>:
  400958:	a9be7bfd 	stp	x29, x30, [sp, #-32]!
  40095c:	910003fd 	mov	x29, sp
  400960:	f9000bf3 	str	x19, [sp, #16]
  400964:	f0000093 	adrp	x19, 413000 <exit@GLIBC_2.17>
  400968:	39422260 	ldrb	w0, [x19, #136]
  40096c:	35000080 	cbnz	w0, 40097c <__do_global_dtors_aux+0x24>
  400970:	97ffffe0 	bl	4008f0 <deregister_tm_clones>
  400974:	52800020 	mov	w0, #0x1                   	// #1
  400978:	39022260 	strb	w0, [x19, #136]
  40097c:	f9400bf3 	ldr	x19, [sp, #16]
  400980:	a8c27bfd 	ldp	x29, x30, [sp], #32
  400984:	d65f03c0 	ret

0000000000400988 <frame_dummy>:
  400988:	17ffffe6 	b	400920 <register_tm_clones>

000000000040098c <main>:
  40098c:	a9be7bfd 	stp	x29, x30, [sp, #-32]!
  400990:	910003fd 	mov	x29, sp
  400994:	b9001fa0 	str	w0, [x29, #28]
  400998:	f9000ba1 	str	x1, [x29, #16]
  40099c:	b9401fa0 	ldr	w0, [x29, #28]
  4009a0:	7100081f 	cmp	w0, #0x2
  4009a4:	54000100 	b.eq	4009c4 <main+0x38>  // b.none
  4009a8:	f9400ba0 	ldr	x0, [x29, #16]
  4009ac:	f9400001 	ldr	x1, [x0]
  4009b0:	d0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  4009b4:	910f4000 	add	x0, x0, #0x3d0
  4009b8:	97ffffaa 	bl	400860 <printf@plt>
  4009bc:	12800000 	mov	w0, #0xffffffff            	// #-1
  4009c0:	97ffff78 	bl	4007a0 <exit@plt>
  4009c4:	f9400ba0 	ldr	x0, [x29, #16]
  4009c8:	91002000 	add	x0, x0, #0x8
  4009cc:	f9400002 	ldr	x2, [x0]
  4009d0:	d0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  4009d4:	910f8000 	add	x0, x0, #0x3e0
  4009d8:	aa0003e1 	mov	x1, x0
  4009dc:	aa0203e0 	mov	x0, x2
  4009e0:	97ffff98 	bl	400840 <strcmp@plt>
  4009e4:	7100001f 	cmp	w0, #0x0
  4009e8:	54000061 	b.ne	4009f4 <main+0x68>  // b.any
  4009ec:	940005e2 	bl	402174 <xag_user_read_gyroscope>
  4009f0:	14000010 	b	400a30 <main+0xa4>
  4009f4:	f9400ba0 	ldr	x0, [x29, #16]
  4009f8:	91002000 	add	x0, x0, #0x8
  4009fc:	f9400002 	ldr	x2, [x0]
  400a00:	d0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  400a04:	910fa000 	add	x0, x0, #0x3e8
  400a08:	aa0003e1 	mov	x1, x0
  400a0c:	aa0203e0 	mov	x0, x2
  400a10:	97ffff8c 	bl	400840 <strcmp@plt>
  400a14:	7100001f 	cmp	w0, #0x0
  400a18:	54000061 	b.ne	400a24 <main+0x98>  // b.any
  400a1c:	9400045b 	bl	401b88 <xag_user_read_accelerometer>
  400a20:	14000004 	b	400a30 <main+0xa4>
  400a24:	d0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  400a28:	910fc000 	add	x0, x0, #0x3f0
  400a2c:	97ffff81 	bl	400830 <puts@plt>
  400a30:	d503201f 	nop
  400a34:	a8c27bfd 	ldp	x29, x30, [sp], #32
  400a38:	d65f03c0 	ret

0000000000400a3c <icm_spi_open>:
  400a3c:	a9be7bfd 	stp	x29, x30, [sp, #-32]!
  400a40:	910003fd 	mov	x29, sp
  400a44:	52801580 	mov	w0, #0xac                  	// #172
  400a48:	b9001fa0 	str	w0, [x29, #28]
  400a4c:	d0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  400a50:	91102000 	add	x0, x0, #0x408
  400a54:	52800041 	mov	w1, #0x2                   	// #2
  400a58:	97ffff5a 	bl	4007c0 <open@plt>
  400a5c:	b9001fa0 	str	w0, [x29, #28]
  400a60:	d0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  400a64:	91106000 	add	x0, x0, #0x418
  400a68:	97ffff72 	bl	400830 <puts@plt>
  400a6c:	b9401fa0 	ldr	w0, [x29, #28]
  400a70:	a8c27bfd 	ldp	x29, x30, [sp], #32
  400a74:	d65f03c0 	ret

0000000000400a78 <icm_spi_config>:
  400a78:	a9bd7bfd 	stp	x29, x30, [sp, #-48]!
  400a7c:	910003fd 	mov	x29, sp
  400a80:	b9001fa0 	str	w0, [x29, #28]
  400a84:	3900afbf 	strb	wzr, [x29, #43]
  400a88:	52800100 	mov	w0, #0x8                   	// #8
  400a8c:	3900aba0 	strb	w0, [x29, #42]
  400a90:	52896800 	mov	w0, #0x4b40                	// #19264
  400a94:	72a00980 	movk	w0, #0x4c, lsl #16
  400a98:	b90027a0 	str	w0, [x29, #36]
  400a9c:	52801580 	mov	w0, #0xac                  	// #172
  400aa0:	b9002fa0 	str	w0, [x29, #44]
  400aa4:	b9401fa0 	ldr	w0, [x29, #28]
  400aa8:	9100afa1 	add	x1, x29, #0x2b
  400aac:	aa0103e2 	mov	x2, x1
  400ab0:	d28d6021 	mov	x1, #0x6b01                	// #27393
  400ab4:	f2a80021 	movk	x1, #0x4001, lsl #16
  400ab8:	97ffff72 	bl	400880 <ioctl@plt>
  400abc:	b9002fa0 	str	w0, [x29, #44]
  400ac0:	b9402fa0 	ldr	w0, [x29, #44]
  400ac4:	3100041f 	cmn	w0, #0x1
  400ac8:	54000081 	b.ne	400ad8 <icm_spi_config+0x60>  // b.any
  400acc:	d0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  400ad0:	9110c000 	add	x0, x0, #0x430
  400ad4:	94000179 	bl	4010b8 <__do_abnormal>
  400ad8:	b9401fa0 	ldr	w0, [x29, #28]
  400adc:	9100afa1 	add	x1, x29, #0x2b
  400ae0:	aa0103e2 	mov	x2, x1
  400ae4:	d28d6021 	mov	x1, #0x6b01                	// #27393
  400ae8:	f2b00021 	movk	x1, #0x8001, lsl #16
  400aec:	97ffff65 	bl	400880 <ioctl@plt>
  400af0:	b9002fa0 	str	w0, [x29, #44]
  400af4:	b9402fa0 	ldr	w0, [x29, #44]
  400af8:	3100041f 	cmn	w0, #0x1
  400afc:	54000081 	b.ne	400b0c <icm_spi_config+0x94>  // b.any
  400b00:	d0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  400b04:	91110000 	add	x0, x0, #0x440
  400b08:	9400016c 	bl	4010b8 <__do_abnormal>
  400b0c:	b9401fa0 	ldr	w0, [x29, #28]
  400b10:	9100aba1 	add	x1, x29, #0x2a
  400b14:	aa0103e2 	mov	x2, x1
  400b18:	d28d6061 	mov	x1, #0x6b03                	// #27395
  400b1c:	f2a80021 	movk	x1, #0x4001, lsl #16
  400b20:	97ffff58 	bl	400880 <ioctl@plt>
  400b24:	b9002fa0 	str	w0, [x29, #44]
  400b28:	b9402fa0 	ldr	w0, [x29, #44]
  400b2c:	3100041f 	cmn	w0, #0x1
  400b30:	54000081 	b.ne	400b40 <icm_spi_config+0xc8>  // b.any
  400b34:	d0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  400b38:	91114000 	add	x0, x0, #0x450
  400b3c:	9400015f 	bl	4010b8 <__do_abnormal>
  400b40:	b9401fa0 	ldr	w0, [x29, #28]
  400b44:	9100aba1 	add	x1, x29, #0x2a
  400b48:	aa0103e2 	mov	x2, x1
  400b4c:	d28d6061 	mov	x1, #0x6b03                	// #27395
  400b50:	f2b00021 	movk	x1, #0x8001, lsl #16
  400b54:	97ffff4b 	bl	400880 <ioctl@plt>
  400b58:	b9002fa0 	str	w0, [x29, #44]
  400b5c:	b9402fa0 	ldr	w0, [x29, #44]
  400b60:	3100041f 	cmn	w0, #0x1
  400b64:	54000081 	b.ne	400b74 <icm_spi_config+0xfc>  // b.any
  400b68:	d0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  400b6c:	91118000 	add	x0, x0, #0x460
  400b70:	94000152 	bl	4010b8 <__do_abnormal>
  400b74:	b9401fa0 	ldr	w0, [x29, #28]
  400b78:	910093a1 	add	x1, x29, #0x24
  400b7c:	aa0103e2 	mov	x2, x1
  400b80:	d28d6081 	mov	x1, #0x6b04                	// #27396
  400b84:	f2a80081 	movk	x1, #0x4004, lsl #16
  400b88:	97ffff3e 	bl	400880 <ioctl@plt>
  400b8c:	b9002fa0 	str	w0, [x29, #44]
  400b90:	b9402fa0 	ldr	w0, [x29, #44]
  400b94:	3100041f 	cmn	w0, #0x1
  400b98:	54000081 	b.ne	400ba8 <icm_spi_config+0x130>  // b.any
  400b9c:	d0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  400ba0:	9111c000 	add	x0, x0, #0x470
  400ba4:	94000145 	bl	4010b8 <__do_abnormal>
  400ba8:	b9401fa0 	ldr	w0, [x29, #28]
  400bac:	910093a1 	add	x1, x29, #0x24
  400bb0:	aa0103e2 	mov	x2, x1
  400bb4:	d28d6081 	mov	x1, #0x6b04                	// #27396
  400bb8:	f2b00081 	movk	x1, #0x8004, lsl #16
  400bbc:	97ffff31 	bl	400880 <ioctl@plt>
  400bc0:	b9002fa0 	str	w0, [x29, #44]
  400bc4:	b9402fa0 	ldr	w0, [x29, #44]
  400bc8:	3100041f 	cmn	w0, #0x1
  400bcc:	54000081 	b.ne	400bdc <icm_spi_config+0x164>  // b.any
  400bd0:	d0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  400bd4:	91122000 	add	x0, x0, #0x488
  400bd8:	94000138 	bl	4010b8 <__do_abnormal>
  400bdc:	3940afa0 	ldrb	w0, [x29, #43]
  400be0:	2a0003e1 	mov	w1, w0
  400be4:	d0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  400be8:	91128000 	add	x0, x0, #0x4a0
  400bec:	97ffff1d 	bl	400860 <printf@plt>
  400bf0:	3940aba0 	ldrb	w0, [x29, #42]
  400bf4:	2a0003e1 	mov	w1, w0
  400bf8:	d0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  400bfc:	9112c000 	add	x0, x0, #0x4b0
  400c00:	97ffff18 	bl	400860 <printf@plt>
  400c04:	b94027a1 	ldr	w1, [x29, #36]
  400c08:	5289ba60 	mov	w0, #0x4dd3                	// #19923
  400c0c:	72a20c40 	movk	w0, #0x1062, lsl #16
  400c10:	9ba07c20 	umull	x0, w1, w0
  400c14:	d360fc00 	lsr	x0, x0, #32
  400c18:	53067c03 	lsr	w3, w0, #6
  400c1c:	b94027a1 	ldr	w1, [x29, #36]
  400c20:	529bd060 	mov	w0, #0xde83                	// #56963
  400c24:	72a86360 	movk	w0, #0x431b, lsl #16
  400c28:	9ba07c20 	umull	x0, w1, w0
  400c2c:	d360fc00 	lsr	x0, x0, #32
  400c30:	53127c01 	lsr	w1, w0, #18
  400c34:	d0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  400c38:	91132000 	add	x0, x0, #0x4c8
  400c3c:	2a0103e2 	mov	w2, w1
  400c40:	2a0303e1 	mov	w1, w3
  400c44:	97ffff07 	bl	400860 <printf@plt>
  400c48:	52800000 	mov	w0, #0x0                   	// #0
  400c4c:	a8c37bfd 	ldp	x29, x30, [sp], #48
  400c50:	d65f03c0 	ret

0000000000400c54 <readfrom_spi_serial>:
  400c54:	a9aa7bfd 	stp	x29, x30, [sp, #-352]!
  400c58:	910003fd 	mov	x29, sp
  400c5c:	b9002fa0 	str	w0, [x29, #44]
  400c60:	790057a1 	strh	w1, [x29, #42]
  400c64:	f90013a2 	str	x2, [x29, #32]
  400c68:	b9001fa3 	str	w3, [x29, #28]
  400c6c:	f9000ba4 	str	x4, [x29, #16]
  400c70:	a90d7fbf 	stp	xzr, xzr, [x29, #208]
  400c74:	a90e7fbf 	stp	xzr, xzr, [x29, #224]
  400c78:	a90f7fbf 	stp	xzr, xzr, [x29, #240]
  400c7c:	a9107fbf 	stp	xzr, xzr, [x29, #256]
  400c80:	a9117fbf 	stp	xzr, xzr, [x29, #272]
  400c84:	a9127fbf 	stp	xzr, xzr, [x29, #288]
  400c88:	a9137fbf 	stp	xzr, xzr, [x29, #304]
  400c8c:	a9147fbf 	stp	xzr, xzr, [x29, #320]
  400c90:	a9057fbf 	stp	xzr, xzr, [x29, #80]
  400c94:	a9067fbf 	stp	xzr, xzr, [x29, #96]
  400c98:	a9077fbf 	stp	xzr, xzr, [x29, #112]
  400c9c:	a9087fbf 	stp	xzr, xzr, [x29, #128]
  400ca0:	a9097fbf 	stp	xzr, xzr, [x29, #144]
  400ca4:	a90a7fbf 	stp	xzr, xzr, [x29, #160]
  400ca8:	a90b7fbf 	stp	xzr, xzr, [x29, #176]
  400cac:	a90c7fbf 	stp	xzr, xzr, [x29, #192]
  400cb0:	b90157bf 	str	wzr, [x29, #340]
  400cb4:	b9015fbf 	str	wzr, [x29, #348]
  400cb8:	b9015bbf 	str	wzr, [x29, #344]
  400cbc:	9100c3a0 	add	x0, x29, #0x30
  400cc0:	d2800402 	mov	x2, #0x20                  	// #32
  400cc4:	52800001 	mov	w1, #0x0                   	// #0
  400cc8:	97fffec6 	bl	4007e0 <memset@plt>
  400ccc:	910343a0 	add	x0, x29, #0xd0
  400cd0:	2a0003e0 	mov	w0, w0
  400cd4:	f9001ba0 	str	x0, [x29, #48]
  400cd8:	910143a0 	add	x0, x29, #0x50
  400cdc:	2a0003e0 	mov	w0, w0
  400ce0:	f9001fa0 	str	x0, [x29, #56]
  400ce4:	794057a1 	ldrh	w1, [x29, #42]
  400ce8:	b9401fa0 	ldr	w0, [x29, #28]
  400cec:	0b000020 	add	w0, w1, w0
  400cf0:	b90043a0 	str	w0, [x29, #64]
  400cf4:	52896800 	mov	w0, #0x4b40                	// #19264
  400cf8:	72a00980 	movk	w0, #0x4c, lsl #16
  400cfc:	b90047a0 	str	w0, [x29, #68]
  400d00:	52800100 	mov	w0, #0x8                   	// #8
  400d04:	39012ba0 	strb	w0, [x29, #74]
  400d08:	5284e200 	mov	w0, #0x2710                	// #10000
  400d0c:	790093a0 	strh	w0, [x29, #72]
  400d10:	b9015bbf 	str	wzr, [x29, #344]
  400d14:	1400000b 	b	400d40 <readfrom_spi_serial+0xec>
  400d18:	b9815ba0 	ldrsw	x0, [x29, #344]
  400d1c:	f94013a1 	ldr	x1, [x29, #32]
  400d20:	8b000020 	add	x0, x1, x0
  400d24:	39400002 	ldrb	w2, [x0]
  400d28:	b9815ba0 	ldrsw	x0, [x29, #344]
  400d2c:	910343a1 	add	x1, x29, #0xd0
  400d30:	38206822 	strb	w2, [x1, x0]
  400d34:	b9415ba0 	ldr	w0, [x29, #344]
  400d38:	11000400 	add	w0, w0, #0x1
  400d3c:	b9015ba0 	str	w0, [x29, #344]
  400d40:	794057a0 	ldrh	w0, [x29, #42]
  400d44:	b9415ba1 	ldr	w1, [x29, #344]
  400d48:	6b00003f 	cmp	w1, w0
  400d4c:	54fffe6b 	b.lt	400d18 <readfrom_spi_serial+0xc4>  // b.tstop
  400d50:	b9015fbf 	str	wzr, [x29, #348]
  400d54:	14000013 	b	400da0 <readfrom_spi_serial+0x14c>
  400d58:	b9815fa0 	ldrsw	x0, [x29, #348]
  400d5c:	910343a1 	add	x1, x29, #0xd0
  400d60:	38606820 	ldrb	w0, [x1, x0]
  400d64:	2a0003e1 	mov	w1, w0
  400d68:	d0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  400d6c:	9113a000 	add	x0, x0, #0x4e8
  400d70:	97fffebc 	bl	400860 <printf@plt>
  400d74:	b9815fa0 	ldrsw	x0, [x29, #348]
  400d78:	f94013a1 	ldr	x1, [x29, #32]
  400d7c:	8b000020 	add	x0, x1, x0
  400d80:	39400000 	ldrb	w0, [x0]
  400d84:	2a0003e1 	mov	w1, w0
  400d88:	d0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  400d8c:	9113e000 	add	x0, x0, #0x4f8
  400d90:	97fffeb4 	bl	400860 <printf@plt>
  400d94:	b9415fa0 	ldr	w0, [x29, #348]
  400d98:	11000400 	add	w0, w0, #0x1
  400d9c:	b9015fa0 	str	w0, [x29, #348]
  400da0:	794057a0 	ldrh	w0, [x29, #42]
  400da4:	b9415fa1 	ldr	w1, [x29, #348]
  400da8:	6b00003f 	cmp	w1, w0
  400dac:	54fffd6b 	b.lt	400d58 <readfrom_spi_serial+0x104>  // b.tstop
  400db0:	b9402fa0 	ldr	w0, [x29, #44]
  400db4:	9100c3a1 	add	x1, x29, #0x30
  400db8:	aa0103e2 	mov	x2, x1
  400dbc:	d28d6001 	mov	x1, #0x6b00                	// #27392
  400dc0:	f2a80401 	movk	x1, #0x4020, lsl #16
  400dc4:	97fffeaf 	bl	400880 <ioctl@plt>
  400dc8:	b90157a0 	str	w0, [x29, #340]
  400dcc:	b94157a0 	ldr	w0, [x29, #340]
  400dd0:	7100001f 	cmp	w0, #0x0
  400dd4:	5400008c 	b.gt	400de4 <readfrom_spi_serial+0x190>
  400dd8:	d0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  400ddc:	91144000 	add	x0, x0, #0x510
  400de0:	97fffea0 	bl	400860 <printf@plt>
  400de4:	d0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  400de8:	9114a000 	add	x0, x0, #0x528
  400dec:	97fffe9d 	bl	400860 <printf@plt>
  400df0:	b9015fbf 	str	wzr, [x29, #348]
  400df4:	1400000b 	b	400e20 <readfrom_spi_serial+0x1cc>
  400df8:	b9815fa0 	ldrsw	x0, [x29, #348]
  400dfc:	910143a1 	add	x1, x29, #0x50
  400e00:	38606820 	ldrb	w0, [x1, x0]
  400e04:	2a0003e1 	mov	w1, w0
  400e08:	d0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  400e0c:	9114e000 	add	x0, x0, #0x538
  400e10:	97fffe94 	bl	400860 <printf@plt>
  400e14:	b9415fa0 	ldr	w0, [x29, #348]
  400e18:	11000400 	add	w0, w0, #0x1
  400e1c:	b9015fa0 	str	w0, [x29, #348]
  400e20:	b9415fa0 	ldr	w0, [x29, #348]
  400e24:	71003c1f 	cmp	w0, #0xf
  400e28:	54fffe8d 	b.le	400df8 <readfrom_spi_serial+0x1a4>
  400e2c:	52800140 	mov	w0, #0xa                   	// #10
  400e30:	97fffe90 	bl	400870 <putchar@plt>
  400e34:	794057a0 	ldrh	w0, [x29, #42]
  400e38:	b9015fa0 	str	w0, [x29, #348]
  400e3c:	14000015 	b	400e90 <readfrom_spi_serial+0x23c>
  400e40:	b9815fa0 	ldrsw	x0, [x29, #348]
  400e44:	910143a1 	add	x1, x29, #0x50
  400e48:	38606820 	ldrb	w0, [x1, x0]
  400e4c:	2a0003e1 	mov	w1, w0
  400e50:	d0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  400e54:	91150000 	add	x0, x0, #0x540
  400e58:	97fffe82 	bl	400860 <printf@plt>
  400e5c:	794057a0 	ldrh	w0, [x29, #42]
  400e60:	b9415fa1 	ldr	w1, [x29, #348]
  400e64:	4b000020 	sub	w0, w1, w0
  400e68:	93407c00 	sxtw	x0, w0
  400e6c:	f9400ba1 	ldr	x1, [x29, #16]
  400e70:	8b000020 	add	x0, x1, x0
  400e74:	b9815fa1 	ldrsw	x1, [x29, #348]
  400e78:	910143a2 	add	x2, x29, #0x50
  400e7c:	38616841 	ldrb	w1, [x2, x1]
  400e80:	39000001 	strb	w1, [x0]
  400e84:	b9415fa0 	ldr	w0, [x29, #348]
  400e88:	11000400 	add	w0, w0, #0x1
  400e8c:	b9015fa0 	str	w0, [x29, #348]
  400e90:	794057a1 	ldrh	w1, [x29, #42]
  400e94:	b9401fa0 	ldr	w0, [x29, #28]
  400e98:	0b000021 	add	w1, w1, w0
  400e9c:	b9415fa0 	ldr	w0, [x29, #348]
  400ea0:	6b00003f 	cmp	w1, w0
  400ea4:	54fffce8 	b.hi	400e40 <readfrom_spi_serial+0x1ec>  // b.pmore
  400ea8:	52800000 	mov	w0, #0x0                   	// #0
  400eac:	a8d67bfd 	ldp	x29, x30, [sp], #352
  400eb0:	d65f03c0 	ret

0000000000400eb4 <dwt_readfromdevice>:
  400eb4:	a9bc7bfd 	stp	x29, x30, [sp, #-64]!
  400eb8:	910003fd 	mov	x29, sp
  400ebc:	b9002fa0 	str	w0, [x29, #44]
  400ec0:	3900afa1 	strb	w1, [x29, #43]
  400ec4:	3900aba2 	strb	w2, [x29, #42]
  400ec8:	f90013a3 	str	x3, [x29, #32]
  400ecc:	f9000fa4 	str	x4, [x29, #24]
  400ed0:	790073bf 	strh	wzr, [x29, #56]
  400ed4:	3900ebbf 	strb	wzr, [x29, #58]
  400ed8:	79007fbf 	strh	wzr, [x29, #62]
  400edc:	3940afa1 	ldrb	w1, [x29, #43]
  400ee0:	d0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  400ee4:	91156000 	add	x0, x0, #0x558
  400ee8:	97fffe5e 	bl	400860 <printf@plt>
  400eec:	3940aba0 	ldrb	w0, [x29, #42]
  400ef0:	7100001f 	cmp	w0, #0x0
  400ef4:	54000121 	b.ne	400f18 <dwt_readfromdevice+0x64>  // b.any
  400ef8:	79407fa0 	ldrh	w0, [x29, #62]
  400efc:	11000401 	add	w1, w0, #0x1
  400f00:	79007fa1 	strh	w1, [x29, #62]
  400f04:	93407c00 	sxtw	x0, w0
  400f08:	9100e3a1 	add	x1, x29, #0x38
  400f0c:	3940afa2 	ldrb	w2, [x29, #43]
  400f10:	38206822 	strb	w2, [x1, x0]
  400f14:	1400002a 	b	400fbc <dwt_readfromdevice+0x108>
  400f18:	79407fa0 	ldrh	w0, [x29, #62]
  400f1c:	11000401 	add	w1, w0, #0x1
  400f20:	79007fa1 	strh	w1, [x29, #62]
  400f24:	2a0003e1 	mov	w1, w0
  400f28:	3940afa0 	ldrb	w0, [x29, #43]
  400f2c:	321a0000 	orr	w0, w0, #0x40
  400f30:	12001c02 	and	w2, w0, #0xff
  400f34:	93407c20 	sxtw	x0, w1
  400f38:	9100e3a1 	add	x1, x29, #0x38
  400f3c:	38206822 	strb	w2, [x1, x0]
  400f40:	39c0aba0 	ldrsb	w0, [x29, #42]
  400f44:	7100001f 	cmp	w0, #0x0
  400f48:	5400012b 	b.lt	400f6c <dwt_readfromdevice+0xb8>  // b.tstop
  400f4c:	79407fa0 	ldrh	w0, [x29, #62]
  400f50:	11000401 	add	w1, w0, #0x1
  400f54:	79007fa1 	strh	w1, [x29, #62]
  400f58:	93407c00 	sxtw	x0, w0
  400f5c:	9100e3a1 	add	x1, x29, #0x38
  400f60:	3940aba2 	ldrb	w2, [x29, #42]
  400f64:	38206822 	strb	w2, [x1, x0]
  400f68:	14000015 	b	400fbc <dwt_readfromdevice+0x108>
  400f6c:	79407fa0 	ldrh	w0, [x29, #62]
  400f70:	11000401 	add	w1, w0, #0x1
  400f74:	79007fa1 	strh	w1, [x29, #62]
  400f78:	2a0003e1 	mov	w1, w0
  400f7c:	3940aba0 	ldrb	w0, [x29, #42]
  400f80:	32196000 	orr	w0, w0, #0xffffff80
  400f84:	12001c02 	and	w2, w0, #0xff
  400f88:	93407c20 	sxtw	x0, w1
  400f8c:	9100e3a1 	add	x1, x29, #0x38
  400f90:	38206822 	strb	w2, [x1, x0]
  400f94:	79407fa0 	ldrh	w0, [x29, #62]
  400f98:	11000401 	add	w1, w0, #0x1
  400f9c:	79007fa1 	strh	w1, [x29, #62]
  400fa0:	2a0003e1 	mov	w1, w0
  400fa4:	3940aba0 	ldrb	w0, [x29, #42]
  400fa8:	53077c00 	lsr	w0, w0, #7
  400fac:	12001c02 	and	w2, w0, #0xff
  400fb0:	93407c20 	sxtw	x0, w1
  400fb4:	9100e3a1 	add	x1, x29, #0x38
  400fb8:	38206822 	strb	w2, [x1, x0]
  400fbc:	79407fa1 	ldrh	w1, [x29, #62]
  400fc0:	3940e3a0 	ldrb	w0, [x29, #56]
  400fc4:	2a0003e2 	mov	w2, w0
  400fc8:	3940e7a0 	ldrb	w0, [x29, #57]
  400fcc:	2a0003e3 	mov	w3, w0
  400fd0:	3940eba0 	ldrb	w0, [x29, #58]
  400fd4:	2a0003e4 	mov	w4, w0
  400fd8:	d0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  400fdc:	91160000 	add	x0, x0, #0x580
  400fe0:	97fffe20 	bl	400860 <printf@plt>
  400fe4:	f94013a0 	ldr	x0, [x29, #32]
  400fe8:	2a0003e1 	mov	w1, w0
  400fec:	9100e3a0 	add	x0, x29, #0x38
  400ff0:	f9400fa4 	ldr	x4, [x29, #24]
  400ff4:	2a0103e3 	mov	w3, w1
  400ff8:	aa0003e2 	mov	x2, x0
  400ffc:	79407fa1 	ldrh	w1, [x29, #62]
  401000:	b9402fa0 	ldr	w0, [x29, #44]
  401004:	97ffff14 	bl	400c54 <readfrom_spi_serial>
  401008:	a8c47bfd 	ldp	x29, x30, [sp], #64
  40100c:	d65f03c0 	ret

0000000000401010 <imu_spi_read_bmi088_id>:
  401010:	a9bd7bfd 	stp	x29, x30, [sp, #-48]!
  401014:	910003fd 	mov	x29, sp
  401018:	b9001fa0 	str	w0, [x29, #28]
  40101c:	f90013bf 	str	xzr, [x29, #32]
  401020:	52800020 	mov	w0, #0x1                   	// #1
  401024:	3900bba0 	strb	w0, [x29, #46]
  401028:	3940bba0 	ldrb	w0, [x29, #46]
  40102c:	910083a1 	add	x1, x29, #0x20
  401030:	aa0103e4 	mov	x4, x1
  401034:	aa0003e3 	mov	x3, x0
  401038:	52800002 	mov	w2, #0x0                   	// #0
  40103c:	12800fe1 	mov	w1, #0xffffff80            	// #-128
  401040:	b9401fa0 	ldr	w0, [x29, #28]
  401044:	97ffff9c 	bl	400eb4 <dwt_readfromdevice>
  401048:	3900bfbf 	strb	wzr, [x29, #47]
  40104c:	1400000c 	b	40107c <imu_spi_read_bmi088_id+0x6c>
  401050:	3940bfa0 	ldrb	w0, [x29, #47]
  401054:	93407c00 	sxtw	x0, w0
  401058:	910083a1 	add	x1, x29, #0x20
  40105c:	38606820 	ldrb	w0, [x1, x0]
  401060:	2a0003e1 	mov	w1, w0
  401064:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  401068:	91168000 	add	x0, x0, #0x5a0
  40106c:	97fffdfd 	bl	400860 <printf@plt>
  401070:	3940bfa0 	ldrb	w0, [x29, #47]
  401074:	11000400 	add	w0, w0, #0x1
  401078:	3900bfa0 	strb	w0, [x29, #47]
  40107c:	3940bfa1 	ldrb	w1, [x29, #47]
  401080:	3940bba0 	ldrb	w0, [x29, #46]
  401084:	6b00003f 	cmp	w1, w0
  401088:	54fffe43 	b.cc	401050 <imu_spi_read_bmi088_id+0x40>  // b.lo, b.ul, b.last
  40108c:	d503201f 	nop
  401090:	a8c37bfd 	ldp	x29, x30, [sp], #48
  401094:	d65f03c0 	ret

0000000000401098 <icm_spi_close>:
  401098:	a9be7bfd 	stp	x29, x30, [sp, #-32]!
  40109c:	910003fd 	mov	x29, sp
  4010a0:	b9001fa0 	str	w0, [x29, #28]
  4010a4:	b9401fa0 	ldr	w0, [x29, #28]
  4010a8:	97fffdd6 	bl	400800 <close@plt>
  4010ac:	52800000 	mov	w0, #0x0                   	// #0
  4010b0:	a8c27bfd 	ldp	x29, x30, [sp], #32
  4010b4:	d65f03c0 	ret

00000000004010b8 <__do_abnormal>:
  4010b8:	a9be7bfd 	stp	x29, x30, [sp, #-32]!
  4010bc:	910003fd 	mov	x29, sp
  4010c0:	f9000fa0 	str	x0, [x29, #24]
  4010c4:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  4010c8:	9116e000 	add	x0, x0, #0x5b8
  4010cc:	f9400fa1 	ldr	x1, [x29, #24]
  4010d0:	97fffde4 	bl	400860 <printf@plt>
  4010d4:	52800000 	mov	w0, #0x0                   	// #0
  4010d8:	97fffdb2 	bl	4007a0 <exit@plt>

00000000004010dc <transfer>:
  4010dc:	a9bb7bfd 	stp	x29, x30, [sp, #-80]!
  4010e0:	910003fd 	mov	x29, sp
  4010e4:	b90047bf 	str	wzr, [x29, #68]
  4010e8:	790083bf 	strh	wzr, [x29, #64]
  4010ec:	12800fe0 	mov	w0, #0xffffff80            	// #-128
  4010f0:	390103a0 	strb	w0, [x29, #64]
  4010f4:	790073bf 	strh	wzr, [x29, #56]
  4010f8:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  4010fc:	91102000 	add	x0, x0, #0x408
  401100:	52800041 	mov	w1, #0x2                   	// #2
  401104:	97fffdaf 	bl	4007c0 <open@plt>
  401108:	b9004ba0 	str	w0, [x29, #72]
  40110c:	b9404ba0 	ldr	w0, [x29, #72]
  401110:	7100001f 	cmp	w0, #0x0
  401114:	5400008a 	b.ge	401124 <transfer+0x48>  // b.tcont
  401118:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  40111c:	91178000 	add	x0, x0, #0x5e0
  401120:	97fffdc4 	bl	400830 <puts@plt>
  401124:	52800060 	mov	w0, #0x3                   	// #3
  401128:	b90047a0 	str	w0, [x29, #68]
  40112c:	910113a0 	add	x0, x29, #0x44
  401130:	aa0003e2 	mov	x2, x0
  401134:	d28d6021 	mov	x1, #0x6b01                	// #27393
  401138:	f2a80021 	movk	x1, #0x4001, lsl #16
  40113c:	b9404ba0 	ldr	w0, [x29, #72]
  401140:	97fffdd0 	bl	400880 <ioctl@plt>
  401144:	b9004fa0 	str	w0, [x29, #76]
  401148:	b9404fa0 	ldr	w0, [x29, #76]
  40114c:	7100001f 	cmp	w0, #0x0
  401150:	540000a0 	b.eq	401164 <transfer+0x88>  // b.none
  401154:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  401158:	91180000 	add	x0, x0, #0x600
  40115c:	97fffdb5 	bl	400830 <puts@plt>
  401160:	14000046 	b	401278 <transfer+0x19c>
  401164:	910063a0 	add	x0, x29, #0x18
  401168:	d2800402 	mov	x2, #0x20                  	// #32
  40116c:	52800001 	mov	w1, #0x0                   	// #0
  401170:	97fffd9c 	bl	4007e0 <memset@plt>
  401174:	910103a0 	add	x0, x29, #0x40
  401178:	f9000fa0 	str	x0, [x29, #24]
  40117c:	9100e3a0 	add	x0, x29, #0x38
  401180:	f90013a0 	str	x0, [x29, #32]
  401184:	52800040 	mov	w0, #0x2                   	// #2
  401188:	b9002ba0 	str	w0, [x29, #40]
  40118c:	52896800 	mov	w0, #0x4b40                	// #19264
  401190:	72a00980 	movk	w0, #0x4c, lsl #16
  401194:	b9002fa0 	str	w0, [x29, #44]
  401198:	52800100 	mov	w0, #0x8                   	// #8
  40119c:	3900cba0 	strb	w0, [x29, #50]
  4011a0:	52807d00 	mov	w0, #0x3e8                 	// #1000
  4011a4:	790063a0 	strh	w0, [x29, #48]
  4011a8:	52800020 	mov	w0, #0x1                   	// #1
  4011ac:	3900cfa0 	strb	w0, [x29, #51]
  4011b0:	910063a0 	add	x0, x29, #0x18
  4011b4:	aa0003e2 	mov	x2, x0
  4011b8:	d28d6001 	mov	x1, #0x6b00                	// #27392
  4011bc:	f2a80401 	movk	x1, #0x4020, lsl #16
  4011c0:	b9404ba0 	ldr	w0, [x29, #72]
  4011c4:	97fffdaf 	bl	400880 <ioctl@plt>
  4011c8:	b9004fa0 	str	w0, [x29, #76]
  4011cc:	b9404fa0 	ldr	w0, [x29, #76]
  4011d0:	7100001f 	cmp	w0, #0x0
  4011d4:	5400008c 	b.gt	4011e4 <transfer+0x108>
  4011d8:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  4011dc:	91144000 	add	x0, x0, #0x510
  4011e0:	97fffda0 	bl	400860 <printf@plt>
  4011e4:	b9004fbf 	str	wzr, [x29, #76]
  4011e8:	1400001c 	b	401258 <transfer+0x17c>
  4011ec:	b9404fa2 	ldr	w2, [x29, #76]
  4011f0:	52955560 	mov	w0, #0xaaab                	// #43691
  4011f4:	72a55540 	movk	w0, #0x2aaa, lsl #16
  4011f8:	9b207c40 	smull	x0, w2, w0
  4011fc:	d360fc01 	lsr	x1, x0, #32
  401200:	131f7c40 	asr	w0, w2, #31
  401204:	4b000021 	sub	w1, w1, w0
  401208:	2a0103e0 	mov	w0, w1
  40120c:	531f7800 	lsl	w0, w0, #1
  401210:	0b010000 	add	w0, w0, w1
  401214:	531f7800 	lsl	w0, w0, #1
  401218:	4b000041 	sub	w1, w2, w0
  40121c:	7100003f 	cmp	w1, #0x0
  401220:	54000081 	b.ne	401230 <transfer+0x154>  // b.any
  401224:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  401228:	91186000 	add	x0, x0, #0x618
  40122c:	97fffd81 	bl	400830 <puts@plt>
  401230:	b9804fa0 	ldrsw	x0, [x29, #76]
  401234:	9100e3a1 	add	x1, x29, #0x38
  401238:	38606820 	ldrb	w0, [x1, x0]
  40123c:	2a0003e1 	mov	w1, w0
  401240:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  401244:	91188000 	add	x0, x0, #0x620
  401248:	97fffd86 	bl	400860 <printf@plt>
  40124c:	b9404fa0 	ldr	w0, [x29, #76]
  401250:	11000400 	add	w0, w0, #0x1
  401254:	b9004fa0 	str	w0, [x29, #76]
  401258:	b9404fa0 	ldr	w0, [x29, #76]
  40125c:	7100041f 	cmp	w0, #0x1
  401260:	54fffc69 	b.ls	4011ec <transfer+0x110>  // b.plast
  401264:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  401268:	91186000 	add	x0, x0, #0x618
  40126c:	97fffd71 	bl	400830 <puts@plt>
  401270:	b9404ba0 	ldr	w0, [x29, #72]
  401274:	97fffd63 	bl	400800 <close@plt>
  401278:	a8c57bfd 	ldp	x29, x30, [sp], #80
  40127c:	d65f03c0 	ret

0000000000401280 <user_spi_readGRY>:
  401280:	a9b97bfd 	stp	x29, x30, [sp, #-112]!
  401284:	910003fd 	mov	x29, sp
  401288:	39007fa0 	strb	w0, [x29, #31]
  40128c:	f9000ba1 	str	x1, [x29, #16]
  401290:	79003ba2 	strh	w2, [x29, #28]
  401294:	12800000 	mov	w0, #0xffffffff            	// #-1
  401298:	b9006fa0 	str	w0, [x29, #108]
  40129c:	b9005bbf 	str	wzr, [x29, #88]
  4012a0:	a904ffbf 	stp	xzr, xzr, [x29, #72]
  4012a4:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  4012a8:	91102000 	add	x0, x0, #0x408
  4012ac:	52800041 	mov	w1, #0x2                   	// #2
  4012b0:	97fffd44 	bl	4007c0 <open@plt>
  4012b4:	b9005fa0 	str	w0, [x29, #92]
  4012b8:	b9405fa0 	ldr	w0, [x29, #92]
  4012bc:	7100001f 	cmp	w0, #0x0
  4012c0:	5400008a 	b.ge	4012d0 <user_spi_readGRY+0x50>  // b.tcont
  4012c4:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  4012c8:	91178000 	add	x0, x0, #0x5e0
  4012cc:	97fffd59 	bl	400830 <puts@plt>
  4012d0:	52800060 	mov	w0, #0x3                   	// #3
  4012d4:	b9005ba0 	str	w0, [x29, #88]
  4012d8:	910163a0 	add	x0, x29, #0x58
  4012dc:	aa0003e2 	mov	x2, x0
  4012e0:	d28d6021 	mov	x1, #0x6b01                	// #27393
  4012e4:	f2a80021 	movk	x1, #0x4001, lsl #16
  4012e8:	b9405fa0 	ldr	w0, [x29, #92]
  4012ec:	97fffd65 	bl	400880 <ioctl@plt>
  4012f0:	b9006fa0 	str	w0, [x29, #108]
  4012f4:	b9406fa0 	ldr	w0, [x29, #108]
  4012f8:	7100001f 	cmp	w0, #0x0
  4012fc:	540000e0 	b.eq	401318 <user_spi_readGRY+0x98>  // b.none
  401300:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  401304:	91180000 	add	x0, x0, #0x600
  401308:	97fffd4a 	bl	400830 <puts@plt>
  40130c:	12800000 	mov	w0, #0xffffffff            	// #-1
  401310:	b9006fa0 	str	w0, [x29, #108]
  401314:	1400005a 	b	40147c <user_spi_readGRY+0x1fc>
  401318:	9100a3a0 	add	x0, x29, #0x28
  40131c:	d2800402 	mov	x2, #0x20                  	// #32
  401320:	52800001 	mov	w1, #0x0                   	// #0
  401324:	97fffd2f 	bl	4007e0 <memset@plt>
  401328:	910123a0 	add	x0, x29, #0x48
  40132c:	f90017a0 	str	x0, [x29, #40]
  401330:	910123a0 	add	x0, x29, #0x48
  401334:	f9001ba0 	str	x0, [x29, #48]
  401338:	52800040 	mov	w0, #0x2                   	// #2
  40133c:	b9003ba0 	str	w0, [x29, #56]
  401340:	529c6c00 	mov	w0, #0xe360                	// #58208
  401344:	72a002c0 	movk	w0, #0x16, lsl #16
  401348:	b9003fa0 	str	w0, [x29, #60]
  40134c:	52800100 	mov	w0, #0x8                   	// #8
  401350:	39010ba0 	strb	w0, [x29, #66]
  401354:	52800020 	mov	w0, #0x1                   	// #1
  401358:	39010fa0 	strb	w0, [x29, #67]
  40135c:	39407fa0 	ldrb	w0, [x29, #31]
  401360:	390123a0 	strb	w0, [x29, #72]
  401364:	f90033bf 	str	xzr, [x29, #96]
  401368:	14000036 	b	401440 <user_spi_readGRY+0x1c0>
  40136c:	f94033a0 	ldr	x0, [x29, #96]
  401370:	12001c00 	and	w0, w0, #0xff
  401374:	39407fa1 	ldrb	w1, [x29, #31]
  401378:	0b010000 	add	w0, w0, w1
  40137c:	12001c00 	and	w0, w0, #0xff
  401380:	390123a0 	strb	w0, [x29, #72]
  401384:	9100a3a0 	add	x0, x29, #0x28
  401388:	aa0003e2 	mov	x2, x0
  40138c:	d28d6001 	mov	x1, #0x6b00                	// #27392
  401390:	f2a80401 	movk	x1, #0x4020, lsl #16
  401394:	b9405fa0 	ldr	w0, [x29, #92]
  401398:	97fffd3a 	bl	400880 <ioctl@plt>
  40139c:	b9006fa0 	str	w0, [x29, #108]
  4013a0:	f9400ba1 	ldr	x1, [x29, #16]
  4013a4:	f94033a0 	ldr	x0, [x29, #96]
  4013a8:	8b000020 	add	x0, x1, x0
  4013ac:	394127a1 	ldrb	w1, [x29, #73]
  4013b0:	39000001 	strb	w1, [x0]
  4013b4:	f9400ba1 	ldr	x1, [x29, #16]
  4013b8:	f94033a0 	ldr	x0, [x29, #96]
  4013bc:	8b000020 	add	x0, x1, x0
  4013c0:	39400000 	ldrb	w0, [x0]
  4013c4:	2a0003e1 	mov	w1, w0
  4013c8:	394127a0 	ldrb	w0, [x29, #73]
  4013cc:	2a0003e2 	mov	w2, w0
  4013d0:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  4013d4:	9118a000 	add	x0, x0, #0x628
  4013d8:	97fffd22 	bl	400860 <printf@plt>
  4013dc:	b9005bbf 	str	wzr, [x29, #88]
  4013e0:	1400000f 	b	40141c <user_spi_readGRY+0x19c>
  4013e4:	b9405ba3 	ldr	w3, [x29, #88]
  4013e8:	b9405ba0 	ldr	w0, [x29, #88]
  4013ec:	93407c00 	sxtw	x0, w0
  4013f0:	910123a1 	add	x1, x29, #0x48
  4013f4:	38606820 	ldrb	w0, [x1, x0]
  4013f8:	2a0003e1 	mov	w1, w0
  4013fc:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  401400:	91192000 	add	x0, x0, #0x648
  401404:	2a0103e2 	mov	w2, w1
  401408:	2a0303e1 	mov	w1, w3
  40140c:	97fffd15 	bl	400860 <printf@plt>
  401410:	b9405ba0 	ldr	w0, [x29, #88]
  401414:	11000400 	add	w0, w0, #0x1
  401418:	b9005ba0 	str	w0, [x29, #88]
  40141c:	b9405ba0 	ldr	w0, [x29, #88]
  401420:	71000c1f 	cmp	w0, #0x3
  401424:	54fffe0d 	b.le	4013e4 <user_spi_readGRY+0x164>
  401428:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  40142c:	91196000 	add	x0, x0, #0x658
  401430:	97fffd00 	bl	400830 <puts@plt>
  401434:	f94033a0 	ldr	x0, [x29, #96]
  401438:	91000400 	add	x0, x0, #0x1
  40143c:	f90033a0 	str	x0, [x29, #96]
  401440:	79403ba0 	ldrh	w0, [x29, #28]
  401444:	f94033a1 	ldr	x1, [x29, #96]
  401448:	eb00003f 	cmp	x1, x0
  40144c:	54fff903 	b.cc	40136c <user_spi_readGRY+0xec>  // b.lo, b.ul, b.last
  401450:	b9403ba1 	ldr	w1, [x29, #56]
  401454:	b9406fa0 	ldr	w0, [x29, #108]
  401458:	6b00003f 	cmp	w1, w0
  40145c:	540000e0 	b.eq	401478 <user_spi_readGRY+0x1f8>  // b.none
  401460:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  401464:	91198000 	add	x0, x0, #0x660
  401468:	97fffcf2 	bl	400830 <puts@plt>
  40146c:	12800000 	mov	w0, #0xffffffff            	// #-1
  401470:	b9006fa0 	str	w0, [x29, #108]
  401474:	14000002 	b	40147c <user_spi_readGRY+0x1fc>
  401478:	b9006fbf 	str	wzr, [x29, #108]
  40147c:	b9405fa0 	ldr	w0, [x29, #92]
  401480:	97fffce0 	bl	400800 <close@plt>
  401484:	b9406fa0 	ldr	w0, [x29, #108]
  401488:	a8c77bfd 	ldp	x29, x30, [sp], #112
  40148c:	d65f03c0 	ret

0000000000401490 <icm_spi_operation>:
  401490:	a9bd7bfd 	stp	x29, x30, [sp, #-48]!
  401494:	910003fd 	mov	x29, sp
  401498:	52801580 	mov	w0, #0xac                  	// #172
  40149c:	b9002fa0 	str	w0, [x29, #44]
  4014a0:	a901ffbf 	stp	xzr, xzr, [x29, #24]
  4014a4:	52800020 	mov	w0, #0x1                   	// #1
  4014a8:	97fffcd2 	bl	4007f0 <sleep@plt>
  4014ac:	17fffffe 	b	4014a4 <icm_spi_operation+0x14>

00000000004014b0 <user_spi_read>:
  4014b0:	a9b47bfd 	stp	x29, x30, [sp, #-192]!
  4014b4:	910003fd 	mov	x29, sp
  4014b8:	39007fa0 	strb	w0, [x29, #31]
  4014bc:	f9000ba1 	str	x1, [x29, #16]
  4014c0:	79003ba2 	strh	w2, [x29, #28]
  4014c4:	b900bfbf 	str	wzr, [x29, #188]
  4014c8:	b900bbbf 	str	wzr, [x29, #184]
  4014cc:	b900b7bf 	str	wzr, [x29, #180]
  4014d0:	b9008bbf 	str	wzr, [x29, #136]
  4014d4:	12800000 	mov	w0, #0xffffffff            	// #-1
  4014d8:	b900aba0 	str	w0, [x29, #168]
  4014dc:	a904ffbf 	stp	xzr, xzr, [x29, #72]
  4014e0:	a905ffbf 	stp	xzr, xzr, [x29, #88]
  4014e4:	528000c0 	mov	w0, #0x6                   	// #6
  4014e8:	b900a7a0 	str	w0, [x29, #164]
  4014ec:	52800020 	mov	w0, #0x1                   	// #1
  4014f0:	b900a3a0 	str	w0, [x29, #160]
  4014f4:	52800020 	mov	w0, #0x1                   	// #1
  4014f8:	b9009fa0 	str	w0, [x29, #156]
  4014fc:	52800020 	mov	w0, #0x1                   	// #1
  401500:	b9009ba0 	str	w0, [x29, #152]
  401504:	52800020 	mov	w0, #0x1                   	// #1
  401508:	b90097a0 	str	w0, [x29, #148]
  40150c:	52800020 	mov	w0, #0x1                   	// #1
  401510:	b90093a0 	str	w0, [x29, #144]
  401514:	52800020 	mov	w0, #0x1                   	// #1
  401518:	b9008fa0 	str	w0, [x29, #140]
  40151c:	79403ba0 	ldrh	w0, [x29, #28]
  401520:	b9009fa0 	str	w0, [x29, #156]
  401524:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  401528:	9119e001 	add	x1, x0, #0x678
  40152c:	9101a3a0 	add	x0, x29, #0x68
  401530:	52800003 	mov	w3, #0x0                   	// #0
  401534:	52800002 	mov	w2, #0x0                   	// #0
  401538:	97fffc9e 	bl	4007b0 <sprintf@plt>
  40153c:	9101a3a0 	add	x0, x29, #0x68
  401540:	52800001 	mov	w1, #0x0                   	// #0
  401544:	97fffc9f 	bl	4007c0 <open@plt>
  401548:	b900aba0 	str	w0, [x29, #168]
  40154c:	b940aba0 	ldr	w0, [x29, #168]
  401550:	7100001f 	cmp	w0, #0x0
  401554:	5400010a 	b.ge	401574 <user_spi_read+0xc4>  // b.tcont
  401558:	9101a3a1 	add	x1, x29, #0x68
  40155c:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  401560:	911a4000 	add	x0, x0, #0x690
  401564:	97fffcbf 	bl	400860 <printf@plt>
  401568:	12800000 	mov	w0, #0xffffffff            	// #-1
  40156c:	b900bfa0 	str	w0, [x29, #188]
  401570:	140000df 	b	4018ec <user_spi_read+0x43c>
  401574:	52800060 	mov	w0, #0x3                   	// #3
  401578:	b9008ba0 	str	w0, [x29, #136]
  40157c:	910223a0 	add	x0, x29, #0x88
  401580:	aa0003e2 	mov	x2, x0
  401584:	d28d6021 	mov	x1, #0x6b01                	// #27393
  401588:	f2a80021 	movk	x1, #0x4001, lsl #16
  40158c:	b940aba0 	ldr	w0, [x29, #168]
  401590:	97fffcbc 	bl	400880 <ioctl@plt>
  401594:	b900bfa0 	str	w0, [x29, #188]
  401598:	b940bfa0 	ldr	w0, [x29, #188]
  40159c:	7100001f 	cmp	w0, #0x0
  4015a0:	540000e0 	b.eq	4015bc <user_spi_read+0x10c>  // b.none
  4015a4:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  4015a8:	91180000 	add	x0, x0, #0x600
  4015ac:	97fffca1 	bl	400830 <puts@plt>
  4015b0:	12800000 	mov	w0, #0xffffffff            	// #-1
  4015b4:	b900bfa0 	str	w0, [x29, #188]
  4015b8:	140000cb 	b	4018e4 <user_spi_read+0x434>
  4015bc:	9100a3a0 	add	x0, x29, #0x28
  4015c0:	d2800402 	mov	x2, #0x20                  	// #32
  4015c4:	52800001 	mov	w1, #0x0                   	// #0
  4015c8:	97fffc86 	bl	4007e0 <memset@plt>
  4015cc:	910123a0 	add	x0, x29, #0x48
  4015d0:	f90017a0 	str	x0, [x29, #40]
  4015d4:	910123a0 	add	x0, x29, #0x48
  4015d8:	f9001ba0 	str	x0, [x29, #48]
  4015dc:	b9409ba1 	ldr	w1, [x29, #152]
  4015e0:	b94097a0 	ldr	w0, [x29, #148]
  4015e4:	0b000020 	add	w0, w1, w0
  4015e8:	b9003ba0 	str	w0, [x29, #56]
  4015ec:	52896800 	mov	w0, #0x4b40                	// #19264
  4015f0:	72a00980 	movk	w0, #0x4c, lsl #16
  4015f4:	b9003fa0 	str	w0, [x29, #60]
  4015f8:	52800100 	mov	w0, #0x8                   	// #8
  4015fc:	39010ba0 	strb	w0, [x29, #66]
  401600:	52800020 	mov	w0, #0x1                   	// #1
  401604:	39010fa0 	strb	w0, [x29, #67]
  401608:	910123a0 	add	x0, x29, #0x48
  40160c:	d2800402 	mov	x2, #0x20                  	// #32
  401610:	52800001 	mov	w1, #0x0                   	// #0
  401614:	97fffc73 	bl	4007e0 <memset@plt>
  401618:	910083a0 	add	x0, x29, #0x20
  40161c:	d28000c2 	mov	x2, #0x6                   	// #6
  401620:	52800001 	mov	w1, #0x0                   	// #0
  401624:	97fffc6f 	bl	4007e0 <memset@plt>
  401628:	39407fa0 	ldrb	w0, [x29, #31]
  40162c:	b900b3a0 	str	w0, [x29, #176]
  401630:	b900bbbf 	str	wzr, [x29, #184]
  401634:	14000093 	b	401880 <user_spi_read+0x3d0>
  401638:	b900b7bf 	str	wzr, [x29, #180]
  40163c:	b9409ba0 	ldr	w0, [x29, #152]
  401640:	7100041f 	cmp	w0, #0x1
  401644:	54000161 	b.ne	401670 <user_spi_read+0x1c0>  // b.any
  401648:	910123a1 	add	x1, x29, #0x48
  40164c:	b980b7a0 	ldrsw	x0, [x29, #180]
  401650:	8b000020 	add	x0, x1, x0
  401654:	b940b3a1 	ldr	w1, [x29, #176]
  401658:	12001c21 	and	w1, w1, #0xff
  40165c:	39000001 	strb	w1, [x0]
  401660:	b940b7a0 	ldr	w0, [x29, #180]
  401664:	11000400 	add	w0, w0, #0x1
  401668:	b900b7a0 	str	w0, [x29, #180]
  40166c:	1400001d 	b	4016e0 <user_spi_read+0x230>
  401670:	b94093a0 	ldr	w0, [x29, #144]
  401674:	7100001f 	cmp	w0, #0x0
  401678:	54000100 	b.eq	401698 <user_spi_read+0x1e8>  // b.none
  40167c:	910123a1 	add	x1, x29, #0x48
  401680:	b980b7a0 	ldrsw	x0, [x29, #180]
  401684:	8b000020 	add	x0, x1, x0
  401688:	b940b3a1 	ldr	w1, [x29, #176]
  40168c:	12003c21 	and	w1, w1, #0xffff
  401690:	79000001 	strh	w1, [x0]
  401694:	14000010 	b	4016d4 <user_spi_read+0x224>
  401698:	b940b3a0 	ldr	w0, [x29, #176]
  40169c:	53087c02 	lsr	w2, w0, #8
  4016a0:	910123a1 	add	x1, x29, #0x48
  4016a4:	b980b7a0 	ldrsw	x0, [x29, #180]
  4016a8:	8b000020 	add	x0, x1, x0
  4016ac:	12001c41 	and	w1, w2, #0xff
  4016b0:	39000001 	strb	w1, [x0]
  4016b4:	b940b7a0 	ldr	w0, [x29, #180]
  4016b8:	11000400 	add	w0, w0, #0x1
  4016bc:	910123a1 	add	x1, x29, #0x48
  4016c0:	93407c00 	sxtw	x0, w0
  4016c4:	8b000020 	add	x0, x1, x0
  4016c8:	b940b3a1 	ldr	w1, [x29, #176]
  4016cc:	12001c21 	and	w1, w1, #0xff
  4016d0:	39000001 	strb	w1, [x0]
  4016d4:	b940b7a0 	ldr	w0, [x29, #180]
  4016d8:	11000800 	add	w0, w0, #0x2
  4016dc:	b900b7a0 	str	w0, [x29, #180]
  4016e0:	b94097a0 	ldr	w0, [x29, #148]
  4016e4:	7100041f 	cmp	w0, #0x1
  4016e8:	540000c1 	b.ne	401700 <user_spi_read+0x250>  // b.any
  4016ec:	910123a1 	add	x1, x29, #0x48
  4016f0:	b980b7a0 	ldrsw	x0, [x29, #180]
  4016f4:	8b000020 	add	x0, x1, x0
  4016f8:	3900001f 	strb	wzr, [x0]
  4016fc:	14000005 	b	401710 <user_spi_read+0x260>
  401700:	910123a1 	add	x1, x29, #0x48
  401704:	b980b7a0 	ldrsw	x0, [x29, #180]
  401708:	8b000020 	add	x0, x1, x0
  40170c:	7900001f 	strh	wzr, [x0]
  401710:	9100a3a0 	add	x0, x29, #0x28
  401714:	aa0003e2 	mov	x2, x0
  401718:	d28d6001 	mov	x1, #0x6b00                	// #27392
  40171c:	f2a80401 	movk	x1, #0x4020, lsl #16
  401720:	b940aba0 	ldr	w0, [x29, #168]
  401724:	97fffc57 	bl	400880 <ioctl@plt>
  401728:	b900bfa0 	str	w0, [x29, #188]
  40172c:	b9403ba0 	ldr	w0, [x29, #56]
  401730:	2a0003e1 	mov	w1, w0
  401734:	b940bfa0 	ldr	w0, [x29, #188]
  401738:	6b01001f 	cmp	w0, w1
  40173c:	540000e0 	b.eq	401758 <user_spi_read+0x2a8>  // b.none
  401740:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  401744:	91198000 	add	x0, x0, #0x660
  401748:	97fffc3a 	bl	400830 <puts@plt>
  40174c:	12800000 	mov	w0, #0xffffffff            	// #-1
  401750:	b900bfa0 	str	w0, [x29, #188]
  401754:	14000064 	b	4018e4 <user_spi_read+0x434>
  401758:	b900bfbf 	str	wzr, [x29, #188]
  40175c:	b94097a0 	ldr	w0, [x29, #148]
  401760:	7100041f 	cmp	w0, #0x1
  401764:	540003e1 	b.ne	4017e0 <user_spi_read+0x330>  // b.any
  401768:	910123a1 	add	x1, x29, #0x48
  40176c:	b980b7a0 	ldrsw	x0, [x29, #180]
  401770:	8b000020 	add	x0, x1, x0
  401774:	39400000 	ldrb	w0, [x0]
  401778:	b9008ba0 	str	w0, [x29, #136]
  40177c:	b9408ba1 	ldr	w1, [x29, #136]
  401780:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  401784:	911a8000 	add	x0, x0, #0x6a0
  401788:	97fffc36 	bl	400860 <printf@plt>
  40178c:	394123a0 	ldrb	w0, [x29, #72]
  401790:	2a0003e1 	mov	w1, w0
  401794:	394127a0 	ldrb	w0, [x29, #73]
  401798:	2a0003e2 	mov	w2, w0
  40179c:	39412ba0 	ldrb	w0, [x29, #74]
  4017a0:	2a0003e3 	mov	w3, w0
  4017a4:	39412fa0 	ldrb	w0, [x29, #75]
  4017a8:	2a0003e4 	mov	w4, w0
  4017ac:	394133a0 	ldrb	w0, [x29, #76]
  4017b0:	2a0003e5 	mov	w5, w0
  4017b4:	394137a0 	ldrb	w0, [x29, #77]
  4017b8:	2a0003e6 	mov	w6, w0
  4017bc:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  4017c0:	911ae000 	add	x0, x0, #0x6b8
  4017c4:	97fffc27 	bl	400860 <printf@plt>
  4017c8:	b9408ba0 	ldr	w0, [x29, #136]
  4017cc:	12001c02 	and	w2, w0, #0xff
  4017d0:	b980bba0 	ldrsw	x0, [x29, #184]
  4017d4:	910083a1 	add	x1, x29, #0x20
  4017d8:	38206822 	strb	w2, [x1, x0]
  4017dc:	1400001a 	b	401844 <user_spi_read+0x394>
  4017e0:	b9408fa0 	ldr	w0, [x29, #140]
  4017e4:	7100001f 	cmp	w0, #0x0
  4017e8:	540000e0 	b.eq	401804 <user_spi_read+0x354>  // b.none
  4017ec:	910123a1 	add	x1, x29, #0x48
  4017f0:	b980b7a0 	ldrsw	x0, [x29, #180]
  4017f4:	8b000020 	add	x0, x1, x0
  4017f8:	79400000 	ldrh	w0, [x0]
  4017fc:	b9008ba0 	str	w0, [x29, #136]
  401800:	14000011 	b	401844 <user_spi_read+0x394>
  401804:	910123a1 	add	x1, x29, #0x48
  401808:	b980b7a0 	ldrsw	x0, [x29, #180]
  40180c:	8b000020 	add	x0, x1, x0
  401810:	39400000 	ldrb	w0, [x0]
  401814:	53185c00 	lsl	w0, w0, #8
  401818:	b9008ba0 	str	w0, [x29, #136]
  40181c:	b940b7a0 	ldr	w0, [x29, #180]
  401820:	11000400 	add	w0, w0, #0x1
  401824:	910123a1 	add	x1, x29, #0x48
  401828:	93407c00 	sxtw	x0, w0
  40182c:	8b000020 	add	x0, x1, x0
  401830:	39400000 	ldrb	w0, [x0]
  401834:	2a0003e1 	mov	w1, w0
  401838:	b9408ba0 	ldr	w0, [x29, #136]
  40183c:	0b000020 	add	w0, w1, w0
  401840:	b9008ba0 	str	w0, [x29, #136]
  401844:	394083a1 	ldrb	w1, [x29, #32]
  401848:	f9400ba0 	ldr	x0, [x29, #16]
  40184c:	39000001 	strb	w1, [x0]
  401850:	f9400ba0 	ldr	x0, [x29, #16]
  401854:	39400000 	ldrb	w0, [x0]
  401858:	2a0003e1 	mov	w1, w0
  40185c:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  401860:	911ba000 	add	x0, x0, #0x6e8
  401864:	97fffbff 	bl	400860 <printf@plt>
  401868:	b940b3a0 	ldr	w0, [x29, #176]
  40186c:	11000400 	add	w0, w0, #0x1
  401870:	b900b3a0 	str	w0, [x29, #176]
  401874:	b940bba0 	ldr	w0, [x29, #184]
  401878:	11000400 	add	w0, w0, #0x1
  40187c:	b900bba0 	str	w0, [x29, #184]
  401880:	39407fa1 	ldrb	w1, [x29, #31]
  401884:	b9409fa0 	ldr	w0, [x29, #156]
  401888:	0b000020 	add	w0, w1, w0
  40188c:	b940b3a1 	ldr	w1, [x29, #176]
  401890:	6b00003f 	cmp	w1, w0
  401894:	54ffed23 	b.cc	401638 <user_spi_read+0x188>  // b.lo, b.ul, b.last
  401898:	b940bba0 	ldr	w0, [x29, #184]
  40189c:	7100081f 	cmp	w0, #0x2
  4018a0:	5400020d 	b.le	4018e0 <user_spi_read+0x430>
  4018a4:	b900afbf 	str	wzr, [x29, #172]
  4018a8:	1400000b 	b	4018d4 <user_spi_read+0x424>
  4018ac:	b980afa0 	ldrsw	x0, [x29, #172]
  4018b0:	f9400ba1 	ldr	x1, [x29, #16]
  4018b4:	8b000020 	add	x0, x1, x0
  4018b8:	b980afa1 	ldrsw	x1, [x29, #172]
  4018bc:	910083a2 	add	x2, x29, #0x20
  4018c0:	38616841 	ldrb	w1, [x2, x1]
  4018c4:	39000001 	strb	w1, [x0]
  4018c8:	b940afa0 	ldr	w0, [x29, #172]
  4018cc:	11000400 	add	w0, w0, #0x1
  4018d0:	b900afa0 	str	w0, [x29, #172]
  4018d4:	b940afa0 	ldr	w0, [x29, #172]
  4018d8:	7100141f 	cmp	w0, #0x5
  4018dc:	54fffe8d 	b.le	4018ac <user_spi_read+0x3fc>
  4018e0:	d503201f 	nop
  4018e4:	b940aba0 	ldr	w0, [x29, #168]
  4018e8:	97fffbc6 	bl	400800 <close@plt>
  4018ec:	b940bfa0 	ldr	w0, [x29, #188]
  4018f0:	13001c00 	sxtb	w0, w0
  4018f4:	a8cc7bfd 	ldp	x29, x30, [sp], #192
  4018f8:	d65f03c0 	ret

00000000004018fc <xag_spi_read_gyroscope>:
  4018fc:	a9b57bfd 	stp	x29, x30, [sp, #-176]!
  401900:	910003fd 	mov	x29, sp
  401904:	39007fa0 	strb	w0, [x29, #31]
  401908:	f9000ba1 	str	x1, [x29, #16]
  40190c:	79003ba2 	strh	w2, [x29, #28]
  401910:	b900afbf 	str	wzr, [x29, #172]
  401914:	b900abbf 	str	wzr, [x29, #168]
  401918:	b900a7bf 	str	wzr, [x29, #164]
  40191c:	b9006fbf 	str	wzr, [x29, #108]
  401920:	12800000 	mov	w0, #0xffffffff            	// #-1
  401924:	b9009fa0 	str	w0, [x29, #156]
  401928:	a904ffbf 	stp	xzr, xzr, [x29, #72]
  40192c:	a905ffbf 	stp	xzr, xzr, [x29, #88]
  401930:	a902ffbf 	stp	xzr, xzr, [x29, #40]
  401934:	a903ffbf 	stp	xzr, xzr, [x29, #56]
  401938:	52800020 	mov	w0, #0x1                   	// #1
  40193c:	b9009ba0 	str	w0, [x29, #152]
  401940:	52800020 	mov	w0, #0x1                   	// #1
  401944:	b90097a0 	str	w0, [x29, #148]
  401948:	52800020 	mov	w0, #0x1                   	// #1
  40194c:	b90093a0 	str	w0, [x29, #144]
  401950:	b90023bf 	str	wzr, [x29, #32]
  401954:	79004bbf 	strh	wzr, [x29, #36]
  401958:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  40195c:	9119e001 	add	x1, x0, #0x678
  401960:	910123a0 	add	x0, x29, #0x48
  401964:	52800003 	mov	w3, #0x0                   	// #0
  401968:	52800002 	mov	w2, #0x0                   	// #0
  40196c:	97fffb91 	bl	4007b0 <sprintf@plt>
  401970:	910123a0 	add	x0, x29, #0x48
  401974:	52800001 	mov	w1, #0x0                   	// #0
  401978:	97fffb92 	bl	4007c0 <open@plt>
  40197c:	b9009fa0 	str	w0, [x29, #156]
  401980:	b9409fa0 	ldr	w0, [x29, #156]
  401984:	7100001f 	cmp	w0, #0x0
  401988:	5400008a 	b.ge	401998 <xag_spi_read_gyroscope+0x9c>  // b.tcont
  40198c:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  401990:	911c0000 	add	x0, x0, #0x700
  401994:	97fffdc9 	bl	4010b8 <__do_abnormal>
  401998:	52800060 	mov	w0, #0x3                   	// #3
  40199c:	b9006fa0 	str	w0, [x29, #108]
  4019a0:	9101b3a0 	add	x0, x29, #0x6c
  4019a4:	aa0003e2 	mov	x2, x0
  4019a8:	d28d6021 	mov	x1, #0x6b01                	// #27393
  4019ac:	f2a80021 	movk	x1, #0x4001, lsl #16
  4019b0:	b9409fa0 	ldr	w0, [x29, #156]
  4019b4:	97fffbb3 	bl	400880 <ioctl@plt>
  4019b8:	b900afa0 	str	w0, [x29, #172]
  4019bc:	b940afa0 	ldr	w0, [x29, #172]
  4019c0:	7100001f 	cmp	w0, #0x0
  4019c4:	54000080 	b.eq	4019d4 <xag_spi_read_gyroscope+0xd8>  // b.none
  4019c8:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  4019cc:	9110c000 	add	x0, x0, #0x430
  4019d0:	97fffdba 	bl	4010b8 <__do_abnormal>
  4019d4:	9101c3a0 	add	x0, x29, #0x70
  4019d8:	d2800402 	mov	x2, #0x20                  	// #32
  4019dc:	52800001 	mov	w1, #0x0                   	// #0
  4019e0:	97fffb80 	bl	4007e0 <memset@plt>
  4019e4:	9100a3a0 	add	x0, x29, #0x28
  4019e8:	f9003ba0 	str	x0, [x29, #112]
  4019ec:	9100a3a0 	add	x0, x29, #0x28
  4019f0:	f9003fa0 	str	x0, [x29, #120]
  4019f4:	b94097a1 	ldr	w1, [x29, #148]
  4019f8:	b94093a0 	ldr	w0, [x29, #144]
  4019fc:	0b000020 	add	w0, w1, w0
  401a00:	b90083a0 	str	w0, [x29, #128]
  401a04:	52896800 	mov	w0, #0x4b40                	// #19264
  401a08:	72a00980 	movk	w0, #0x4c, lsl #16
  401a0c:	b90087a0 	str	w0, [x29, #132]
  401a10:	52800100 	mov	w0, #0x8                   	// #8
  401a14:	39022ba0 	strb	w0, [x29, #138]
  401a18:	52800020 	mov	w0, #0x1                   	// #1
  401a1c:	39022fa0 	strb	w0, [x29, #139]
  401a20:	9100a3a0 	add	x0, x29, #0x28
  401a24:	d2800402 	mov	x2, #0x20                  	// #32
  401a28:	52800001 	mov	w1, #0x0                   	// #0
  401a2c:	97fffb6d 	bl	4007e0 <memset@plt>
  401a30:	910083a0 	add	x0, x29, #0x20
  401a34:	d28000c2 	mov	x2, #0x6                   	// #6
  401a38:	52800001 	mov	w1, #0x0                   	// #0
  401a3c:	97fffb69 	bl	4007e0 <memset@plt>
  401a40:	39407fa0 	ldrb	w0, [x29, #31]
  401a44:	b900a3a0 	str	w0, [x29, #160]
  401a48:	b900abbf 	str	wzr, [x29, #168]
  401a4c:	1400003b 	b	401b38 <xag_spi_read_gyroscope+0x23c>
  401a50:	b900a7bf 	str	wzr, [x29, #164]
  401a54:	b94097a0 	ldr	w0, [x29, #148]
  401a58:	7100041f 	cmp	w0, #0x1
  401a5c:	540001a1 	b.ne	401a90 <xag_spi_read_gyroscope+0x194>  // b.any
  401a60:	b940a3a0 	ldr	w0, [x29, #160]
  401a64:	13001c00 	sxtb	w0, w0
  401a68:	32196000 	orr	w0, w0, #0xffffff80
  401a6c:	13001c02 	sxtb	w2, w0
  401a70:	9100a3a1 	add	x1, x29, #0x28
  401a74:	b980a7a0 	ldrsw	x0, [x29, #164]
  401a78:	8b000020 	add	x0, x1, x0
  401a7c:	12001c41 	and	w1, w2, #0xff
  401a80:	39000001 	strb	w1, [x0]
  401a84:	b940a7a0 	ldr	w0, [x29, #164]
  401a88:	11000400 	add	w0, w0, #0x1
  401a8c:	b900a7a0 	str	w0, [x29, #164]
  401a90:	b94093a0 	ldr	w0, [x29, #144]
  401a94:	7100041f 	cmp	w0, #0x1
  401a98:	540000a1 	b.ne	401aac <xag_spi_read_gyroscope+0x1b0>  // b.any
  401a9c:	9100a3a1 	add	x1, x29, #0x28
  401aa0:	b980a7a0 	ldrsw	x0, [x29, #164]
  401aa4:	8b000020 	add	x0, x1, x0
  401aa8:	3900001f 	strb	wzr, [x0]
  401aac:	9101c3a0 	add	x0, x29, #0x70
  401ab0:	aa0003e2 	mov	x2, x0
  401ab4:	d28d6001 	mov	x1, #0x6b00                	// #27392
  401ab8:	f2a80401 	movk	x1, #0x4020, lsl #16
  401abc:	b9409fa0 	ldr	w0, [x29, #156]
  401ac0:	97fffb70 	bl	400880 <ioctl@plt>
  401ac4:	b900afa0 	str	w0, [x29, #172]
  401ac8:	b94083a0 	ldr	w0, [x29, #128]
  401acc:	2a0003e1 	mov	w1, w0
  401ad0:	b940afa0 	ldr	w0, [x29, #172]
  401ad4:	6b01001f 	cmp	w0, w1
  401ad8:	540000e0 	b.eq	401af4 <xag_spi_read_gyroscope+0x1f8>  // b.none
  401adc:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  401ae0:	91198000 	add	x0, x0, #0x660
  401ae4:	97fffb53 	bl	400830 <puts@plt>
  401ae8:	12800000 	mov	w0, #0xffffffff            	// #-1
  401aec:	b900afa0 	str	w0, [x29, #172]
  401af0:	14000019 	b	401b54 <xag_spi_read_gyroscope+0x258>
  401af4:	b94093a0 	ldr	w0, [x29, #144]
  401af8:	7100041f 	cmp	w0, #0x1
  401afc:	54000121 	b.ne	401b20 <xag_spi_read_gyroscope+0x224>  // b.any
  401b00:	b980aba0 	ldrsw	x0, [x29, #168]
  401b04:	f9400ba1 	ldr	x1, [x29, #16]
  401b08:	8b000020 	add	x0, x1, x0
  401b0c:	b980a7a1 	ldrsw	x1, [x29, #164]
  401b10:	9100a3a2 	add	x2, x29, #0x28
  401b14:	38616841 	ldrb	w1, [x2, x1]
  401b18:	39000001 	strb	w1, [x0]
  401b1c:	b900afbf 	str	wzr, [x29, #172]
  401b20:	b940a3a0 	ldr	w0, [x29, #160]
  401b24:	11000400 	add	w0, w0, #0x1
  401b28:	b900a3a0 	str	w0, [x29, #160]
  401b2c:	b940aba0 	ldr	w0, [x29, #168]
  401b30:	11000400 	add	w0, w0, #0x1
  401b34:	b900aba0 	str	w0, [x29, #168]
  401b38:	39407fa1 	ldrb	w1, [x29, #31]
  401b3c:	79403ba0 	ldrh	w0, [x29, #28]
  401b40:	0b000020 	add	w0, w1, w0
  401b44:	b940a3a1 	ldr	w1, [x29, #160]
  401b48:	6b00003f 	cmp	w1, w0
  401b4c:	54fff82b 	b.lt	401a50 <xag_spi_read_gyroscope+0x154>  // b.tstop
  401b50:	d503201f 	nop
  401b54:	b9409fa0 	ldr	w0, [x29, #156]
  401b58:	97fffb2a 	bl	400800 <close@plt>
  401b5c:	b940afa0 	ldr	w0, [x29, #172]
  401b60:	13001c00 	sxtb	w0, w0
  401b64:	a8cb7bfd 	ldp	x29, x30, [sp], #176
  401b68:	d65f03c0 	ret

0000000000401b6c <xag_spi_read_accelerometer>:
  401b6c:	d10043ff 	sub	sp, sp, #0x10
  401b70:	39003fe0 	strb	w0, [sp, #15]
  401b74:	f90003e1 	str	x1, [sp]
  401b78:	79001be2 	strh	w2, [sp, #12]
  401b7c:	12800000 	mov	w0, #0xffffffff            	// #-1
  401b80:	910043ff 	add	sp, sp, #0x10
  401b84:	d65f03c0 	ret

0000000000401b88 <xag_user_read_accelerometer>:
  401b88:	a9be7bfd 	stp	x29, x30, [sp, #-32]!
  401b8c:	910003fd 	mov	x29, sp
  401b90:	a9017fbf 	stp	xzr, xzr, [x29, #16]
  401b94:	910043a0 	add	x0, x29, #0x10
  401b98:	52800022 	mov	w2, #0x1                   	// #1
  401b9c:	aa0003e1 	mov	x1, x0
  401ba0:	12800fe0 	mov	w0, #0xffffff80            	// #-128
  401ba4:	97fffff2 	bl	401b6c <xag_spi_read_accelerometer>
  401ba8:	52827100 	mov	w0, #0x1388                	// #5000
  401bac:	97fffb29 	bl	400850 <usleep@plt>
  401bb0:	17fffff9 	b	401b94 <xag_user_read_accelerometer+0xc>

0000000000401bb4 <xag_spi_read_gyroscope>:
  401bb4:	a9b57bfd 	stp	x29, x30, [sp, #-176]!
  401bb8:	910003fd 	mov	x29, sp
  401bbc:	39007fa0 	strb	w0, [x29, #31]
  401bc0:	f9000ba1 	str	x1, [x29, #16]
  401bc4:	79003ba2 	strh	w2, [x29, #28]
  401bc8:	b900afbf 	str	wzr, [x29, #172]
  401bcc:	b900abbf 	str	wzr, [x29, #168]
  401bd0:	b900a7bf 	str	wzr, [x29, #164]
  401bd4:	b9006fbf 	str	wzr, [x29, #108]
  401bd8:	12800000 	mov	w0, #0xffffffff            	// #-1
  401bdc:	b9009fa0 	str	w0, [x29, #156]
  401be0:	a904ffbf 	stp	xzr, xzr, [x29, #72]
  401be4:	a905ffbf 	stp	xzr, xzr, [x29, #88]
  401be8:	a902ffbf 	stp	xzr, xzr, [x29, #40]
  401bec:	a903ffbf 	stp	xzr, xzr, [x29, #56]
  401bf0:	52800020 	mov	w0, #0x1                   	// #1
  401bf4:	b9009ba0 	str	w0, [x29, #152]
  401bf8:	52800020 	mov	w0, #0x1                   	// #1
  401bfc:	b90097a0 	str	w0, [x29, #148]
  401c00:	52800020 	mov	w0, #0x1                   	// #1
  401c04:	b90093a0 	str	w0, [x29, #144]
  401c08:	b90023bf 	str	wzr, [x29, #32]
  401c0c:	79004bbf 	strh	wzr, [x29, #36]
  401c10:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  401c14:	911c6001 	add	x1, x0, #0x718
  401c18:	910123a0 	add	x0, x29, #0x48
  401c1c:	52800003 	mov	w3, #0x0                   	// #0
  401c20:	52800002 	mov	w2, #0x0                   	// #0
  401c24:	97fffae3 	bl	4007b0 <sprintf@plt>
  401c28:	910123a0 	add	x0, x29, #0x48
  401c2c:	52800001 	mov	w1, #0x0                   	// #0
  401c30:	97fffae4 	bl	4007c0 <open@plt>
  401c34:	b9009fa0 	str	w0, [x29, #156]
  401c38:	b9409fa0 	ldr	w0, [x29, #156]
  401c3c:	7100001f 	cmp	w0, #0x0
  401c40:	5400008a 	b.ge	401c50 <xag_spi_read_gyroscope+0x9c>  // b.tcont
  401c44:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  401c48:	911cc000 	add	x0, x0, #0x730
  401c4c:	97fffd1b 	bl	4010b8 <__do_abnormal>
  401c50:	52800060 	mov	w0, #0x3                   	// #3
  401c54:	b9006fa0 	str	w0, [x29, #108]
  401c58:	9101b3a0 	add	x0, x29, #0x6c
  401c5c:	aa0003e2 	mov	x2, x0
  401c60:	d28d6021 	mov	x1, #0x6b01                	// #27393
  401c64:	f2a80021 	movk	x1, #0x4001, lsl #16
  401c68:	b9409fa0 	ldr	w0, [x29, #156]
  401c6c:	97fffb05 	bl	400880 <ioctl@plt>
  401c70:	b900afa0 	str	w0, [x29, #172]
  401c74:	b940afa0 	ldr	w0, [x29, #172]
  401c78:	7100001f 	cmp	w0, #0x0
  401c7c:	54000080 	b.eq	401c8c <xag_spi_read_gyroscope+0xd8>  // b.none
  401c80:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  401c84:	911d6000 	add	x0, x0, #0x758
  401c88:	97fffd0c 	bl	4010b8 <__do_abnormal>
  401c8c:	9101c3a0 	add	x0, x29, #0x70
  401c90:	d2800402 	mov	x2, #0x20                  	// #32
  401c94:	52800001 	mov	w1, #0x0                   	// #0
  401c98:	97fffad2 	bl	4007e0 <memset@plt>
  401c9c:	9100a3a0 	add	x0, x29, #0x28
  401ca0:	f9003ba0 	str	x0, [x29, #112]
  401ca4:	9100a3a0 	add	x0, x29, #0x28
  401ca8:	f9003fa0 	str	x0, [x29, #120]
  401cac:	b94097a1 	ldr	w1, [x29, #148]
  401cb0:	b94093a0 	ldr	w0, [x29, #144]
  401cb4:	0b000020 	add	w0, w1, w0
  401cb8:	b90083a0 	str	w0, [x29, #128]
  401cbc:	52896800 	mov	w0, #0x4b40                	// #19264
  401cc0:	72a00980 	movk	w0, #0x4c, lsl #16
  401cc4:	b90087a0 	str	w0, [x29, #132]
  401cc8:	52800100 	mov	w0, #0x8                   	// #8
  401ccc:	39022ba0 	strb	w0, [x29, #138]
  401cd0:	52800020 	mov	w0, #0x1                   	// #1
  401cd4:	39022fa0 	strb	w0, [x29, #139]
  401cd8:	9100a3a0 	add	x0, x29, #0x28
  401cdc:	d2800402 	mov	x2, #0x20                  	// #32
  401ce0:	52800001 	mov	w1, #0x0                   	// #0
  401ce4:	97fffabf 	bl	4007e0 <memset@plt>
  401ce8:	910083a0 	add	x0, x29, #0x20
  401cec:	d28000c2 	mov	x2, #0x6                   	// #6
  401cf0:	52800001 	mov	w1, #0x0                   	// #0
  401cf4:	97fffabb 	bl	4007e0 <memset@plt>
  401cf8:	39407fa0 	ldrb	w0, [x29, #31]
  401cfc:	b900a3a0 	str	w0, [x29, #160]
  401d00:	b900abbf 	str	wzr, [x29, #168]
  401d04:	1400003b 	b	401df0 <xag_spi_read_gyroscope+0x23c>
  401d08:	b900a7bf 	str	wzr, [x29, #164]
  401d0c:	b94097a0 	ldr	w0, [x29, #148]
  401d10:	7100041f 	cmp	w0, #0x1
  401d14:	540001a1 	b.ne	401d48 <xag_spi_read_gyroscope+0x194>  // b.any
  401d18:	b940a3a0 	ldr	w0, [x29, #160]
  401d1c:	13001c00 	sxtb	w0, w0
  401d20:	32196000 	orr	w0, w0, #0xffffff80
  401d24:	13001c02 	sxtb	w2, w0
  401d28:	9100a3a1 	add	x1, x29, #0x28
  401d2c:	b980a7a0 	ldrsw	x0, [x29, #164]
  401d30:	8b000020 	add	x0, x1, x0
  401d34:	12001c41 	and	w1, w2, #0xff
  401d38:	39000001 	strb	w1, [x0]
  401d3c:	b940a7a0 	ldr	w0, [x29, #164]
  401d40:	11000400 	add	w0, w0, #0x1
  401d44:	b900a7a0 	str	w0, [x29, #164]
  401d48:	b94093a0 	ldr	w0, [x29, #144]
  401d4c:	7100041f 	cmp	w0, #0x1
  401d50:	540000a1 	b.ne	401d64 <xag_spi_read_gyroscope+0x1b0>  // b.any
  401d54:	9100a3a1 	add	x1, x29, #0x28
  401d58:	b980a7a0 	ldrsw	x0, [x29, #164]
  401d5c:	8b000020 	add	x0, x1, x0
  401d60:	3900001f 	strb	wzr, [x0]
  401d64:	9101c3a0 	add	x0, x29, #0x70
  401d68:	aa0003e2 	mov	x2, x0
  401d6c:	d28d6001 	mov	x1, #0x6b00                	// #27392
  401d70:	f2a80401 	movk	x1, #0x4020, lsl #16
  401d74:	b9409fa0 	ldr	w0, [x29, #156]
  401d78:	97fffac2 	bl	400880 <ioctl@plt>
  401d7c:	b900afa0 	str	w0, [x29, #172]
  401d80:	b94083a0 	ldr	w0, [x29, #128]
  401d84:	2a0003e1 	mov	w1, w0
  401d88:	b940afa0 	ldr	w0, [x29, #172]
  401d8c:	6b01001f 	cmp	w0, w1
  401d90:	540000e0 	b.eq	401dac <xag_spi_read_gyroscope+0x1f8>  // b.none
  401d94:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  401d98:	911dc000 	add	x0, x0, #0x770
  401d9c:	97fffaa5 	bl	400830 <puts@plt>
  401da0:	12800000 	mov	w0, #0xffffffff            	// #-1
  401da4:	b900afa0 	str	w0, [x29, #172]
  401da8:	14000019 	b	401e0c <xag_spi_read_gyroscope+0x258>
  401dac:	b94093a0 	ldr	w0, [x29, #144]
  401db0:	7100041f 	cmp	w0, #0x1
  401db4:	54000121 	b.ne	401dd8 <xag_spi_read_gyroscope+0x224>  // b.any
  401db8:	b980aba0 	ldrsw	x0, [x29, #168]
  401dbc:	f9400ba1 	ldr	x1, [x29, #16]
  401dc0:	8b000020 	add	x0, x1, x0
  401dc4:	b980a7a1 	ldrsw	x1, [x29, #164]
  401dc8:	9100a3a2 	add	x2, x29, #0x28
  401dcc:	38616841 	ldrb	w1, [x2, x1]
  401dd0:	39000001 	strb	w1, [x0]
  401dd4:	b900afbf 	str	wzr, [x29, #172]
  401dd8:	b940a3a0 	ldr	w0, [x29, #160]
  401ddc:	11000400 	add	w0, w0, #0x1
  401de0:	b900a3a0 	str	w0, [x29, #160]
  401de4:	b940aba0 	ldr	w0, [x29, #168]
  401de8:	11000400 	add	w0, w0, #0x1
  401dec:	b900aba0 	str	w0, [x29, #168]
  401df0:	39407fa1 	ldrb	w1, [x29, #31]
  401df4:	79403ba0 	ldrh	w0, [x29, #28]
  401df8:	0b000020 	add	w0, w1, w0
  401dfc:	b940a3a1 	ldr	w1, [x29, #160]
  401e00:	6b00003f 	cmp	w1, w0
  401e04:	54fff82b 	b.lt	401d08 <xag_spi_read_gyroscope+0x154>  // b.tstop
  401e08:	d503201f 	nop
  401e0c:	b9409fa0 	ldr	w0, [x29, #156]
  401e10:	97fffa7c 	bl	400800 <close@plt>
  401e14:	b940afa0 	ldr	w0, [x29, #172]
  401e18:	13001c00 	sxtb	w0, w0
  401e1c:	a8cb7bfd 	ldp	x29, x30, [sp], #176
  401e20:	d65f03c0 	ret

0000000000401e24 <xag_spi_write_gyroscope>:
  401e24:	a9b77bfd 	stp	x29, x30, [sp, #-144]!
  401e28:	910003fd 	mov	x29, sp
  401e2c:	39007fa0 	strb	w0, [x29, #31]
  401e30:	f9000ba1 	str	x1, [x29, #16]
  401e34:	79003ba2 	strh	w2, [x29, #28]
  401e38:	b9008fbf 	str	wzr, [x29, #140]
  401e3c:	b9008bbf 	str	wzr, [x29, #136]
  401e40:	b90073bf 	str	wzr, [x29, #112]
  401e44:	12800000 	mov	w0, #0xffffffff            	// #-1
  401e48:	b90087a0 	str	w0, [x29, #132]
  401e4c:	a9047fbf 	stp	xzr, xzr, [x29, #64]
  401e50:	52800020 	mov	w0, #0x1                   	// #1
  401e54:	b90083a0 	str	w0, [x29, #128]
  401e58:	52800020 	mov	w0, #0x1                   	// #1
  401e5c:	b9007fa0 	str	w0, [x29, #124]
  401e60:	52800020 	mov	w0, #0x1                   	// #1
  401e64:	b9007ba0 	str	w0, [x29, #120]
  401e68:	52800020 	mov	w0, #0x1                   	// #1
  401e6c:	b90077a0 	str	w0, [x29, #116]
  401e70:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  401e74:	911c6001 	add	x1, x0, #0x718
  401e78:	910143a0 	add	x0, x29, #0x50
  401e7c:	52800003 	mov	w3, #0x0                   	// #0
  401e80:	52800002 	mov	w2, #0x0                   	// #0
  401e84:	97fffa4b 	bl	4007b0 <sprintf@plt>
  401e88:	910143a0 	add	x0, x29, #0x50
  401e8c:	52800001 	mov	w1, #0x0                   	// #0
  401e90:	97fffa4c 	bl	4007c0 <open@plt>
  401e94:	b90087a0 	str	w0, [x29, #132]
  401e98:	b94087a0 	ldr	w0, [x29, #132]
  401e9c:	7100001f 	cmp	w0, #0x0
  401ea0:	5400008a 	b.ge	401eb0 <xag_spi_write_gyroscope+0x8c>  // b.tcont
  401ea4:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  401ea8:	911e2000 	add	x0, x0, #0x788
  401eac:	97fffc83 	bl	4010b8 <__do_abnormal>
  401eb0:	52800060 	mov	w0, #0x3                   	// #3
  401eb4:	b90073a0 	str	w0, [x29, #112]
  401eb8:	9101c3a0 	add	x0, x29, #0x70
  401ebc:	aa0003e2 	mov	x2, x0
  401ec0:	d28d6021 	mov	x1, #0x6b01                	// #27393
  401ec4:	f2a80021 	movk	x1, #0x4001, lsl #16
  401ec8:	b94087a0 	ldr	w0, [x29, #132]
  401ecc:	97fffa6d 	bl	400880 <ioctl@plt>
  401ed0:	b9008fa0 	str	w0, [x29, #140]
  401ed4:	b9408fa0 	ldr	w0, [x29, #140]
  401ed8:	7100001f 	cmp	w0, #0x0
  401edc:	54000080 	b.eq	401eec <xag_spi_write_gyroscope+0xc8>  // b.none
  401ee0:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  401ee4:	911ec000 	add	x0, x0, #0x7b0
  401ee8:	97fffc74 	bl	4010b8 <__do_abnormal>
  401eec:	910083a0 	add	x0, x29, #0x20
  401ef0:	d2800402 	mov	x2, #0x20                  	// #32
  401ef4:	52800001 	mov	w1, #0x0                   	// #0
  401ef8:	97fffa3a 	bl	4007e0 <memset@plt>
  401efc:	910103a0 	add	x0, x29, #0x40
  401f00:	f90013a0 	str	x0, [x29, #32]
  401f04:	910103a0 	add	x0, x29, #0x40
  401f08:	f90017a0 	str	x0, [x29, #40]
  401f0c:	b94083a1 	ldr	w1, [x29, #128]
  401f10:	b9407fa0 	ldr	w0, [x29, #124]
  401f14:	0b000020 	add	w0, w1, w0
  401f18:	b90033a0 	str	w0, [x29, #48]
  401f1c:	52896800 	mov	w0, #0x4b40                	// #19264
  401f20:	72a00980 	movk	w0, #0x4c, lsl #16
  401f24:	b90037a0 	str	w0, [x29, #52]
  401f28:	52800100 	mov	w0, #0x8                   	// #8
  401f2c:	3900eba0 	strb	w0, [x29, #58]
  401f30:	52800020 	mov	w0, #0x1                   	// #1
  401f34:	3900efa0 	strb	w0, [x29, #59]
  401f38:	5280fa00 	mov	w0, #0x7d0                 	// #2000
  401f3c:	97fffa45 	bl	400850 <usleep@plt>
  401f40:	910103a0 	add	x0, x29, #0x40
  401f44:	d2800202 	mov	x2, #0x10                  	// #16
  401f48:	52800001 	mov	w1, #0x0                   	// #0
  401f4c:	97fffa25 	bl	4007e0 <memset@plt>
  401f50:	b94083a0 	ldr	w0, [x29, #128]
  401f54:	7100041f 	cmp	w0, #0x1
  401f58:	54000121 	b.ne	401f7c <xag_spi_write_gyroscope+0x158>  // b.any
  401f5c:	910103a1 	add	x1, x29, #0x40
  401f60:	b9808ba0 	ldrsw	x0, [x29, #136]
  401f64:	8b000020 	add	x0, x1, x0
  401f68:	39407fa1 	ldrb	w1, [x29, #31]
  401f6c:	39000001 	strb	w1, [x0]
  401f70:	b9408ba0 	ldr	w0, [x29, #136]
  401f74:	11000400 	add	w0, w0, #0x1
  401f78:	b9008ba0 	str	w0, [x29, #136]
  401f7c:	b9407fa0 	ldr	w0, [x29, #124]
  401f80:	7100041f 	cmp	w0, #0x1
  401f84:	540000c1 	b.ne	401f9c <xag_spi_write_gyroscope+0x178>  // b.any
  401f88:	f9400ba0 	ldr	x0, [x29, #16]
  401f8c:	39400002 	ldrb	w2, [x0]
  401f90:	b9808ba0 	ldrsw	x0, [x29, #136]
  401f94:	910103a1 	add	x1, x29, #0x40
  401f98:	38206822 	strb	w2, [x1, x0]
  401f9c:	910083a0 	add	x0, x29, #0x20
  401fa0:	aa0003e2 	mov	x2, x0
  401fa4:	d28d6001 	mov	x1, #0x6b00                	// #27392
  401fa8:	f2a80401 	movk	x1, #0x4020, lsl #16
  401fac:	b94087a0 	ldr	w0, [x29, #132]
  401fb0:	97fffa34 	bl	400880 <ioctl@plt>
  401fb4:	b9008fa0 	str	w0, [x29, #140]
  401fb8:	b94033a0 	ldr	w0, [x29, #48]
  401fbc:	2a0003e1 	mov	w1, w0
  401fc0:	b9408fa0 	ldr	w0, [x29, #140]
  401fc4:	6b01001f 	cmp	w0, w1
  401fc8:	540000e0 	b.eq	401fe4 <xag_spi_write_gyroscope+0x1c0>  // b.none
  401fcc:	b0000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  401fd0:	911dc000 	add	x0, x0, #0x770
  401fd4:	97fffa17 	bl	400830 <puts@plt>
  401fd8:	12800000 	mov	w0, #0xffffffff            	// #-1
  401fdc:	b9008fa0 	str	w0, [x29, #140]
  401fe0:	14000002 	b	401fe8 <xag_spi_write_gyroscope+0x1c4>
  401fe4:	b9008fbf 	str	wzr, [x29, #140]
  401fe8:	b94087a0 	ldr	w0, [x29, #132]
  401fec:	97fffa05 	bl	400800 <close@plt>
  401ff0:	b9408fa0 	ldr	w0, [x29, #140]
  401ff4:	13001c00 	sxtb	w0, w0
  401ff8:	a8c97bfd 	ldp	x29, x30, [sp], #144
  401ffc:	d65f03c0 	ret

0000000000402000 <xag_user_get_gyro_data>:
  402000:	a9bc7bfd 	stp	x29, x30, [sp, #-64]!
  402004:	910003fd 	mov	x29, sp
  402008:	f9000fa0 	str	x0, [x29, #24]
  40200c:	3900ffbf 	strb	wzr, [x29, #63]
  402010:	b90023bf 	str	wzr, [x29, #32]
  402014:	79004bbf 	strh	wzr, [x29, #36]
  402018:	12800000 	mov	w0, #0xffffffff            	// #-1
  40201c:	b9003ba0 	str	w0, [x29, #56]
  402020:	52800040 	mov	w0, #0x2                   	// #2
  402024:	3900dfa0 	strb	w0, [x29, #55]
  402028:	910083a0 	add	x0, x29, #0x20
  40202c:	528000c2 	mov	w2, #0x6                   	// #6
  402030:	aa0003e1 	mov	x1, x0
  402034:	3940dfa0 	ldrb	w0, [x29, #55]
  402038:	97fffedf 	bl	401bb4 <xag_spi_read_gyroscope>
  40203c:	13001c00 	sxtb	w0, w0
  402040:	b9003ba0 	str	w0, [x29, #56]
  402044:	b9403ba0 	ldr	w0, [x29, #56]
  402048:	7100001f 	cmp	w0, #0x0
  40204c:	540008c1 	b.ne	402164 <xag_user_get_gyro_data+0x164>  // b.any
  402050:	3940ffa0 	ldrb	w0, [x29, #63]
  402054:	11000401 	add	w1, w0, #0x1
  402058:	3900ffa1 	strb	w1, [x29, #63]
  40205c:	93407c00 	sxtw	x0, w0
  402060:	910083a1 	add	x1, x29, #0x20
  402064:	38606820 	ldrb	w0, [x1, x0]
  402068:	b90033a0 	str	w0, [x29, #48]
  40206c:	3940ffa0 	ldrb	w0, [x29, #63]
  402070:	11000401 	add	w1, w0, #0x1
  402074:	3900ffa1 	strb	w1, [x29, #63]
  402078:	93407c00 	sxtw	x0, w0
  40207c:	910083a1 	add	x1, x29, #0x20
  402080:	38606820 	ldrb	w0, [x1, x0]
  402084:	b9002fa0 	str	w0, [x29, #44]
  402088:	b9402fa0 	ldr	w0, [x29, #44]
  40208c:	53185c00 	lsl	w0, w0, #8
  402090:	b94033a1 	ldr	w1, [x29, #48]
  402094:	2a000020 	orr	w0, w1, w0
  402098:	b9002ba0 	str	w0, [x29, #40]
  40209c:	b9402ba0 	ldr	w0, [x29, #40]
  4020a0:	13003c01 	sxth	w1, w0
  4020a4:	f9400fa0 	ldr	x0, [x29, #24]
  4020a8:	79000001 	strh	w1, [x0]
  4020ac:	3940ffa0 	ldrb	w0, [x29, #63]
  4020b0:	11000401 	add	w1, w0, #0x1
  4020b4:	3900ffa1 	strb	w1, [x29, #63]
  4020b8:	93407c00 	sxtw	x0, w0
  4020bc:	910083a1 	add	x1, x29, #0x20
  4020c0:	38606820 	ldrb	w0, [x1, x0]
  4020c4:	b90033a0 	str	w0, [x29, #48]
  4020c8:	3940ffa0 	ldrb	w0, [x29, #63]
  4020cc:	11000401 	add	w1, w0, #0x1
  4020d0:	3900ffa1 	strb	w1, [x29, #63]
  4020d4:	93407c00 	sxtw	x0, w0
  4020d8:	910083a1 	add	x1, x29, #0x20
  4020dc:	38606820 	ldrb	w0, [x1, x0]
  4020e0:	b9002fa0 	str	w0, [x29, #44]
  4020e4:	b9402fa0 	ldr	w0, [x29, #44]
  4020e8:	53185c00 	lsl	w0, w0, #8
  4020ec:	b94033a1 	ldr	w1, [x29, #48]
  4020f0:	2a000020 	orr	w0, w1, w0
  4020f4:	b9002ba0 	str	w0, [x29, #40]
  4020f8:	b9402ba0 	ldr	w0, [x29, #40]
  4020fc:	13003c01 	sxth	w1, w0
  402100:	f9400fa0 	ldr	x0, [x29, #24]
  402104:	79000401 	strh	w1, [x0, #2]
  402108:	3940ffa0 	ldrb	w0, [x29, #63]
  40210c:	11000401 	add	w1, w0, #0x1
  402110:	3900ffa1 	strb	w1, [x29, #63]
  402114:	93407c00 	sxtw	x0, w0
  402118:	910083a1 	add	x1, x29, #0x20
  40211c:	38606820 	ldrb	w0, [x1, x0]
  402120:	b90033a0 	str	w0, [x29, #48]
  402124:	3940ffa0 	ldrb	w0, [x29, #63]
  402128:	11000401 	add	w1, w0, #0x1
  40212c:	3900ffa1 	strb	w1, [x29, #63]
  402130:	93407c00 	sxtw	x0, w0
  402134:	910083a1 	add	x1, x29, #0x20
  402138:	38606820 	ldrb	w0, [x1, x0]
  40213c:	b9002fa0 	str	w0, [x29, #44]
  402140:	b9402fa0 	ldr	w0, [x29, #44]
  402144:	53185c00 	lsl	w0, w0, #8
  402148:	b94033a1 	ldr	w1, [x29, #48]
  40214c:	2a000020 	orr	w0, w1, w0
  402150:	b9002ba0 	str	w0, [x29, #40]
  402154:	b9402ba0 	ldr	w0, [x29, #40]
  402158:	13003c01 	sxth	w1, w0
  40215c:	f9400fa0 	ldr	x0, [x29, #24]
  402160:	79000801 	strh	w1, [x0, #4]
  402164:	b9403ba0 	ldr	w0, [x29, #56]
  402168:	13001c00 	sxtb	w0, w0
  40216c:	a8c47bfd 	ldp	x29, x30, [sp], #64
  402170:	d65f03c0 	ret

0000000000402174 <xag_user_read_gyroscope>:
  402174:	a9ba7bfd 	stp	x29, x30, [sp, #-96]!
  402178:	910003fd 	mov	x29, sp
  40217c:	a9057fbf 	stp	xzr, xzr, [x29, #80]
  402180:	39013fbf 	strb	wzr, [x29, #79]
  402184:	39013bbf 	strb	wzr, [x29, #78]
  402188:	f9000fbf 	str	xzr, [x29, #24]
  40218c:	f90013bf 	str	xzr, [x29, #32]
  402190:	f90017bf 	str	xzr, [x29, #40]
  402194:	f9001bbf 	str	xzr, [x29, #48]
  402198:	f9001fbf 	str	xzr, [x29, #56]
  40219c:	f90023bf 	str	xzr, [x29, #64]
  4021a0:	790023bf 	strh	wzr, [x29, #16]
  4021a4:	790027bf 	strh	wzr, [x29, #18]
  4021a8:	79002bbf 	strh	wzr, [x29, #20]
  4021ac:	910143a0 	add	x0, x29, #0x50
  4021b0:	52800022 	mov	w2, #0x1                   	// #1
  4021b4:	aa0003e1 	mov	x1, x0
  4021b8:	52800000 	mov	w0, #0x0                   	// #0
  4021bc:	97fffe7e 	bl	401bb4 <xag_spi_read_gyroscope>
  4021c0:	394143a0 	ldrb	w0, [x29, #80]
  4021c4:	2a0003e1 	mov	w1, w0
  4021c8:	90000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  4021cc:	911f2000 	add	x0, x0, #0x7c8
  4021d0:	97fff9a4 	bl	400860 <printf@plt>
  4021d4:	52800080 	mov	w0, #0x4                   	// #4
  4021d8:	39013fa0 	strb	w0, [x29, #79]
  4021dc:	91013fa0 	add	x0, x29, #0x4f
  4021e0:	52800022 	mov	w2, #0x1                   	// #1
  4021e4:	aa0003e1 	mov	x1, x0
  4021e8:	528001e0 	mov	w0, #0xf                   	// #15
  4021ec:	97ffff0e 	bl	401e24 <xag_spi_write_gyroscope>
  4021f0:	910143a0 	add	x0, x29, #0x50
  4021f4:	52800022 	mov	w2, #0x1                   	// #1
  4021f8:	aa0003e1 	mov	x1, x0
  4021fc:	528001e0 	mov	w0, #0xf                   	// #15
  402200:	97fffe6d 	bl	401bb4 <xag_spi_read_gyroscope>
  402204:	52800080 	mov	w0, #0x4                   	// #4
  402208:	39013ba0 	strb	w0, [x29, #78]
  40220c:	91013ba0 	add	x0, x29, #0x4e
  402210:	52800022 	mov	w2, #0x1                   	// #1
  402214:	aa0003e1 	mov	x1, x0
  402218:	52800200 	mov	w0, #0x10                  	// #16
  40221c:	97ffff02 	bl	401e24 <xag_spi_write_gyroscope>
  402220:	910043a0 	add	x0, x29, #0x10
  402224:	97ffff77 	bl	402000 <xag_user_get_gyro_data>
  402228:	13001c00 	sxtb	w0, w0
  40222c:	7100001f 	cmp	w0, #0x0
  402230:	540004a1 	b.ne	4022c4 <xag_user_read_gyroscope+0x150>  // b.any
  402234:	79c023a0 	ldrsh	w0, [x29, #16]
  402238:	1e620000 	scvtf	d0, w0
  40223c:	d2e81c00 	mov	x0, #0x40e0000000000000    	// #4674736413210574848
  402240:	9e670001 	fmov	d1, x0
  402244:	1e611800 	fdiv	d0, d0, d1
  402248:	d2c80000 	mov	x0, #0x400000000000        	// #70368744177664
  40224c:	f2e811e0 	movk	x0, #0x408f, lsl #48
  402250:	9e670001 	fmov	d1, x0
  402254:	1e610801 	fmul	d1, d0, d1
  402258:	1e611000 	fmov	d0, #3.000000000000000000e+00
  40225c:	1e600820 	fmul	d0, d1, d0
  402260:	fd000fa0 	str	d0, [x29, #24]
  402264:	79c027a0 	ldrsh	w0, [x29, #18]
  402268:	1e620000 	scvtf	d0, w0
  40226c:	d2e81c00 	mov	x0, #0x40e0000000000000    	// #4674736413210574848
  402270:	9e670001 	fmov	d1, x0
  402274:	1e611800 	fdiv	d0, d0, d1
  402278:	d2c80000 	mov	x0, #0x400000000000        	// #70368744177664
  40227c:	f2e811e0 	movk	x0, #0x408f, lsl #48
  402280:	9e670001 	fmov	d1, x0
  402284:	1e610801 	fmul	d1, d0, d1
  402288:	1e611000 	fmov	d0, #3.000000000000000000e+00
  40228c:	1e600820 	fmul	d0, d1, d0
  402290:	fd0013a0 	str	d0, [x29, #32]
  402294:	79c02ba0 	ldrsh	w0, [x29, #20]
  402298:	1e620000 	scvtf	d0, w0
  40229c:	d2e81c00 	mov	x0, #0x40e0000000000000    	// #4674736413210574848
  4022a0:	9e670001 	fmov	d1, x0
  4022a4:	1e611800 	fdiv	d0, d0, d1
  4022a8:	d2c80000 	mov	x0, #0x400000000000        	// #70368744177664
  4022ac:	f2e811e0 	movk	x0, #0x408f, lsl #48
  4022b0:	9e670001 	fmov	d1, x0
  4022b4:	1e610801 	fmul	d1, d0, d1
  4022b8:	1e611000 	fmov	d0, #3.000000000000000000e+00
  4022bc:	1e600820 	fmul	d0, d1, d0
  4022c0:	fd0017a0 	str	d0, [x29, #40]
  4022c4:	79c023a0 	ldrsh	w0, [x29, #16]
  4022c8:	2a0003e1 	mov	w1, w0
  4022cc:	fd400fa0 	ldr	d0, [x29, #24]
  4022d0:	90000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  4022d4:	911fa000 	add	x0, x0, #0x7e8
  4022d8:	97fff962 	bl	400860 <printf@plt>
  4022dc:	79c027a0 	ldrsh	w0, [x29, #18]
  4022e0:	2a0003e1 	mov	w1, w0
  4022e4:	fd4013a0 	ldr	d0, [x29, #32]
  4022e8:	90000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  4022ec:	91204000 	add	x0, x0, #0x810
  4022f0:	97fff95c 	bl	400860 <printf@plt>
  4022f4:	79c02ba0 	ldrsh	w0, [x29, #20]
  4022f8:	2a0003e1 	mov	w1, w0
  4022fc:	fd4017a0 	ldr	d0, [x29, #40]
  402300:	90000000 	adrp	x0, 402000 <xag_user_get_gyro_data>
  402304:	9120e000 	add	x0, x0, #0x838
  402308:	97fff956 	bl	400860 <printf@plt>
  40230c:	5281a800 	mov	w0, #0xd40                 	// #3392
  402310:	72a00060 	movk	w0, #0x3, lsl #16
  402314:	97fff94f 	bl	400850 <usleep@plt>
  402318:	17ffffc2 	b	402220 <xag_user_read_gyroscope+0xac>
  40231c:	00000000 	.inst	0x00000000 ; undefined

0000000000402320 <__libc_csu_init>:
  402320:	a9bc7bfd 	stp	x29, x30, [sp, #-64]!
  402324:	910003fd 	mov	x29, sp
  402328:	a901d7f4 	stp	x20, x21, [sp, #24]
  40232c:	90000094 	adrp	x20, 412000 <__FRAME_END__+0xf7a0>
  402330:	90000095 	adrp	x21, 412000 <__FRAME_END__+0xf7a0>
  402334:	91374294 	add	x20, x20, #0xdd0
  402338:	913722b5 	add	x21, x21, #0xdc8
  40233c:	a902dff6 	stp	x22, x23, [sp, #40]
  402340:	cb150294 	sub	x20, x20, x21
  402344:	f9001ff8 	str	x24, [sp, #56]
  402348:	2a0003f6 	mov	w22, w0
  40234c:	aa0103f7 	mov	x23, x1
  402350:	9343fe94 	asr	x20, x20, #3
  402354:	aa0203f8 	mov	x24, x2
  402358:	97fff904 	bl	400768 <_init>
  40235c:	b4000194 	cbz	x20, 40238c <__libc_csu_init+0x6c>
  402360:	f9000bb3 	str	x19, [x29, #16]
  402364:	d2800013 	mov	x19, #0x0                   	// #0
  402368:	f8737aa3 	ldr	x3, [x21, x19, lsl #3]
  40236c:	aa1803e2 	mov	x2, x24
  402370:	aa1703e1 	mov	x1, x23
  402374:	2a1603e0 	mov	w0, w22
  402378:	91000673 	add	x19, x19, #0x1
  40237c:	d63f0060 	blr	x3
  402380:	eb13029f 	cmp	x20, x19
  402384:	54ffff21 	b.ne	402368 <__libc_csu_init+0x48>  // b.any
  402388:	f9400bb3 	ldr	x19, [x29, #16]
  40238c:	a941d7f4 	ldp	x20, x21, [sp, #24]
  402390:	a942dff6 	ldp	x22, x23, [sp, #40]
  402394:	f9401ff8 	ldr	x24, [sp, #56]
  402398:	a8c47bfd 	ldp	x29, x30, [sp], #64
  40239c:	d65f03c0 	ret

00000000004023a0 <__libc_csu_fini>:
  4023a0:	d65f03c0 	ret

Disassembly of section .fini:

00000000004023a4 <_fini>:
  4023a4:	a9bf7bfd 	stp	x29, x30, [sp, #-16]!
  4023a8:	910003fd 	mov	x29, sp
  4023ac:	a8c17bfd 	ldp	x29, x30, [sp], #16
  4023b0:	d65f03c0 	ret
